Android调用WebView(H5端)代码

2018-12-14  本文已影响0人  王魔王

Android调用js代码

1.通过webView的loadUrl()方法调用
mWebView.loadUrl("javascript:callJsFromAndroid()");//调用空参的方法
 mWebView.loadUrl("javascript:callJsFromAndroid(\"是谁在敲打我窗\")");//调用有参的方法

传String的时候要加转义字符

2.通过webView的evaluateJavascript()方法
     mWebView.evaluateJavascript("javascript:callJsFromAndroid(\"是你的就是你的\")", new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String value) {
                        //这里value即是js的返回值
                        //如果value为null,那么检查js代码中该方法是否有返回值
                    }
                });

注意,不管采用哪种方法调用js代码,下面三点必须符合

1.javascript是固定的,写死即可。这里是为了告诉webview我要调用javascript中的方法
2.callJsFromAndroid()这个方法是html中定义好的方法,我们调用的时候名称一定要匹配上。通过这两步完成了一个信息的传递:告诉webView我要调用javascript中的callJsFromAndroid()方法
3.js代码调用一定要在onPageFinished() 方法之后调用,否则不生效

3.两种方法比较

loadUrl()获取js的返回值比较难。
网络盛传该方法会引起页面的重新加载,但我实验了一下,并没有发现该现象。不知道是哪里出了错。
我是在模拟器上,加载的assets中的html。
希望有大神可以指正

evaluateJavascript():Android 4.4以上才可以用,但不会引起页面的刷新

上一篇下一篇

猜你喜欢

热点阅读