github.com/gzsll/WebVi… 实现Android原生native和h5通信 注意:如果加入下面的代码会阻止js通信。使jsBridge失效。切记
webView.setWebViewClient(new WebViewClient() {// 会阻碍jsbridge
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
LogUtils.d("onReceivedSslError", "页面加载ssl onReceivedSslError = " + error.toString());
handler.proceed();//忽略证书的错误继续Load页面内容,不会显示空白页面
}
});
如果实在想加可以加如下:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
if (error.getPrimaryError() == SslError.SSL_DATE_INVALID // 日期不正确
|| error.getPrimaryError() == SslError.SSL_EXPIRED // 日期不正确
|| error.getPrimaryError() == SslError.SSL_INVALID // webview BUG
|| error.getPrimaryError() == SslError.SSL_UNTRUSTED) { // 根证书丢失
if (chkMySSLCNCert(error.getCertificate())) {
handler.proceed(); // 如果证书一致,忽略错误
}
}
}
```
原理分析:
通过library下的assets/WebViewJavascriptBridge.js
然后重写:WVJBWebView(Webview)、WVJBWebViewClient(WebViewClient)来实现。