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

Webview控件中js与activity相互调用方法_第1张图片
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相互调用方法)