WebView-WebView与本地Js进行交互

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接口,也可以是当前类,目的就是放androidjs互调的方法

//参数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(){

扫描二维码关注公众号,回复: 2416830 查看本文章

//  alert("==jscallandroid==");

    testCall.JsCallAndroid(document.getElementById("show_txt").value);

    }

注:1)loadUrljavascript:要调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来通知界面线程;

 

猜你喜欢

转载自blog.csdn.net/niuba123456/article/details/81177586
今日推荐