10 WebView与本地Js进行交互
10.1 整理html相关内容
先把html,css,js文件放入assets文件夹中,这个要和html以前引用js、css一样的目录,不然html就引用不到js,css文件;
10.2 webview设置允许使用js
webview.getSettings().setJavaScriptEnabled(true);
10.3 webview添加js接口
//参数1:自定义一个js接口,也可以是当前类,目的就是放android和js互调的方法
//参数2:这个相当于定义前参数的一个对象名称,js中直接使用testCall.native();
webview.addJavascriptInterface(this, "testCall");
10.4 android 调用js
Android:
webview.loadUrl("javascript:androidcalljs('" + etxt_js.getText().toString() + "')");
js:
//js调用android的方法并进行传值
function jscallandroid(){
// alert("==jscallandroid==");
testCall.JsCallAndroid(document.getElementById("show_txt").value);
}
注:1)loadUrl中javascript:要调js方法名('参数');这里的必须添加单引号
10.5 js调用android
Js:function androidcalljs(str){
document.getElementById("show_txt").value = str;
//alert("==androidcalljs=="+str);
}
Android:
public void JsCallAndroid(String jsStr) {
Toast.makeText(getApplicationContext(), jsStr + "======",
Toast.LENGTH_SHORT).show();
Message message = new Message();
message.what = 100;
message.obj = jsStr;
handler.sendMessage(message);
}
注:如果要给控件复制需要通过handler来通知界面线程;