Android中webview跟JAVASCRIPT中的交互
来源:互联网 发布:个性的淘宝店铺名字 编辑:程序博客网 时间:2024/05/16 09:46
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,interfacename)
其中,obj为和javascript通信的应用程序,interfacename为提供给JAVASCRIPT调用的
名称,设置如下:
1
WebView webView =
new
WebView(
this
);
2
webView.getSettings().setJavaScriptEnabled(
true
);
3
webView.loadUrl(getIntent().getCharSequenceExtra(
"url"
).toString());
4
//设定JavaScript脚本代码的界面名称是”android”
5
webView.addJavascriptInterface(
this
,
"android"
);
其中WEBVIEW调用的HTML页中,JS如下:
1
<script type=
"text/javascript"
>
2
function
ok() {
3
android.js(document.forms[0].elements[0].value, document.forms[0].elements[1].value);
4
}
而这个android.js在哪呢?那是在应用程序中的
1
//JavaScript脚本代码可以调用的函数js()处理
2
public void js(String action, String uri) {
3
...../
4
}
这个JS中就是处理JAVASCRIPT发送过来的请求了.
2) 下面的例子,当WEBVIEW网页中输入后,点提交按钮,会跟ANDROID的应用程序进行交互
01
WebView webView =
new
WebView(
this
);
02
webView.getSettings().setJavaScriptEnabled(
true
);
03
webView.setWebChromeClient(
new
MyWebChromeClient());
04
webView.loadUrl(getIntent().getCharSequenceExtra(
"url"
).toString());
05
06
//onJsAlert()函数接收到来自HTML网页的alert()警告信息
07
public
boolean
onJsAlert(WebView view, String url, String message, JsResult result) {
08
if
(message.length() !=
0
) {
09
AlertDialog.Builder builder =
new
AlertDialog.Builder(JExample02.
this
);
10
builder.setTitle(
"From JavaScript"
).setMessage(message).show();
11
result.cancel();
12
return
true
;
13
}
14
return
false
;
15
}
而HTML页中的JS事件为:
1
<
input
type
=
"button"
value
=
"alert"
onclick
=
"alert(document.forms[0].elements[0].value)"
>
特别提示下,在自定义的MyWebChromeClient())中,除了可以重写onJSAlert外,还可以
重写onJsPrompt,onJsConfirm等,可以参考
http://618119.com/archives/2010/12/20/199.html
3) 下面这个例子,先显示第一张图片,点一点后,再显示第2张图片
HTML JS中:
01
<script language=
"javascript"
>
02
function
changeImage02() {
03
document.getElementById(
"image"
).src=
"navy02.jpg"
;
04
}
05
function
changeImage01() {
06
document.getElementById(
"image"
).src=
"navy01.jpg"
;
07
}
08
</script>
09
</head>
10
<body>
11
<a onClick=
"window.demo.onClick()"
>
12
<img id=
"image"
src=
"navy01.jpg"
/></a>
13
</body>
当点<a onClick="window.demo.onClick()">
后,调用ANDROID应用程序中的处理部分,看程序:
01
webView.addJavascriptInterface(
new
JSInterface(),
"demo"
);
02
03
public
final
class
JSInterface {
04
//JavaScript脚本代码可以调用的函数onClick()处理
05
06
public
void
onClick() {
07
handler.post(
new
Runnable() {
08
public
void
run() {
09
if
(flag ==
0
) {
10
flag =
1
;
11
webView.loadUrl(
"javascript:changeImage02()"
);
12
}
else
{
13
flag =
0
;
14
webView.loadUrl(
"javascript:changeImage01()"
);
15
}
16
}
17
});
18
}
19
}
可以看到,ANDROID中,通过webView.loadUrl去调用HTML页面中的JS
【转】 点击打开链接
- Android中webview跟JAVASCRIPT中的交互
- Android中webview跟JAVASCRIPT中的交互
- Android中webview跟JAVASCRIPT中的交互
- (五) Android中WebView跟JavaScript中的交互
- Android中的WebView组件与JavaScript交互
- Android中WebView与Javascript的交互
- Android中webView与javascript交互
- Android中 WebView与Javascript简单交互
- Android中WebView的JavaScript-native交互
- Android中WebView与Javascript交互
- Android WebView JavaScript交互
- Android WebView JavaScript交互
- Android WebView JavaScript交互
- Android WebView中的JavaScript和java代码的交互
- WebView控件中的javascript与Android本地功能交互
- android webview 与 javascript交互
- android webview and javascript 交互
- Android:WebView与Javascript交互
- javaweb乱码解决最有效的方法
- LG E900拆解图
- 存储过程简介
- C# 写托盘程序 笔记
- c 语方学习笔记七
- Android中webview跟JAVASCRIPT中的交互
- 马尔科夫随机场和马尔科夫链
- perl map 和grep使用
- 指针与数组
- 迄今遇到过最难排除的两个bug
- 位运算学习
- mmap的优缺点:
- 终端 设置 CC后 一直无法正常编译 export CC=arm-linux-gcc
- 内核空间与用户空间