webview怎么实现java和js交互的
1个回答
展开全部
可以,只要你是用webview打开的,那么不管事远程还是本地,都可以通过webview与app的本地java代码进行交互。没有任何区别。
1、webview必须设置支持Javascript
1
mWebview.getSettings().setJavaScriptEnabled(true);
2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp
1
2
3
4
5
6
7
8
9
10
11
12
13
mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");
final class JavaScriptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
3、JS页面
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
window.onload = function(){
document.getElementById('btn_1').addEventListener('click', onBtnClick, false);
var _int_value = window.ncp.callOnJs();
alert("get int from java:" + _int_value );
}
function onBtnClick() {
window.ncp.callOnJs2("click");
}
</script>
接下来就可以调用js方法了,
1、Java调用js方法
1
mWebView.loadUrl("javascript:onSaveCallback()");
2、JS访问java方法
1
window.ncp.callOnJs2("click");
1、webview必须设置支持Javascript
1
mWebview.getSettings().setJavaScriptEnabled(true);
2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp
1
2
3
4
5
6
7
8
9
10
11
12
13
mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");
final class JavaScriptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
3、JS页面
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
window.onload = function(){
document.getElementById('btn_1').addEventListener('click', onBtnClick, false);
var _int_value = window.ncp.callOnJs();
alert("get int from java:" + _int_value );
}
function onBtnClick() {
window.ncp.callOnJs2("click");
}
</script>
接下来就可以调用js方法了,
1、Java调用js方法
1
mWebView.loadUrl("javascript:onSaveCallback()");
2、JS访问java方法
1
window.ncp.callOnJs2("click");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询