美文网首页
Webview控件中js与activity相互调用方法

Webview控件中js与activity相互调用方法

作者: wangjing_dc | 来源:发表于2017-12-28 11:57 被阅读0次
Webview

WebView 是现在项目中使用平率非常高的控件, 本文重点讲述在WebView中,js如何调用activity中的java方法,以及activity中如何调用js方法。

首先设置javascript权限
WebSettings

WebSetting webSetting = webView.getSettings();
// 设置javascript为可用
webSetting.setJavaScriptEnabled(true);
// 添加js调用接口
webView.addJavascriptinterface(myJsInterface(), "jsInterface");

接下来实现上面的方法

private Object myJsInterface(){
    Object myInterface = new Object(){
        // 提供js调用方法,无参
        // js中:var str = window.jsInterface.myInterface ();
        public String jsCallJava(){
            return "js Call java";
        }

        // 提供js调用方法,带参
        // js中:var str = window.jsInterface.jsCallJava2("hello i from js");    
        public String jsCallJava2(final String str){
            return "js Call java: " + str;
        }

        // java调用js方法
        public void javaCallJs(){
            // 执行js需要在ui线程中运行
            runOnUiThread(new Runable(){
                public void run(){
                    webView.loadUrl("javascript: callFromJava()");
                }
            });
        }

        // java调用带参数的js方法
        public void javaCallJs2(){
            // 执行js需要在ui线程中运行
            runOnUiThread(new Runable(){
                public void run(){
                    webView.loadUrl("javascript: callFromJava('param-from-java')");
                }
            });
        }

    };

    return myInterface;
}

结束

相关文章

网友评论

      本文标题:Webview控件中js与activity相互调用方法

      本文链接:https://www.haomeiwen.com/subject/cpvmgxtx.html