WebView和JS 交互

2017-06-15  本文已影响54人  Keike

//注意如果出现undefined 接受的参数1、是没有标注 @JavascriptInterface
//  2、是H5 没有调用window.registerName.method(content)  注意window.
public class ClassName {
       @JavascriptInterface
       public void method(final String content) {
           runOnUiThread(new Runnable() {
 
       }
  }
//注册类名字
 webView.getSettings().setJavaScriptEnabled(true);
 webView.addJavascriptInterface(new className(),"registerName");
//method :JS 提供的方法名字
// webView.loadUrl("javascript:stop()");     19版本之前
//19(包括19版本)之后,需要兼容性。
webView.evaluateJavascript(("javascript:method()"), new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String responseJson) {
                   
                });

*H5需要保存数据持久化(比如需要用户登录信息)

//这个是打开本地持久化
webView.getSettings().setDomStorageEnabled(true);
//还有一种是加载https的URL时在5.0以上加载不了,5.0以下可以加载,这种情况可能是网页中存在非https得资源,在5.0以上是默认关闭,需要设置,
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
上一篇 下一篇

猜你喜欢

热点阅读