webView加载https,然后拦截url出现的问题总结

之前公司对接h5的时候都是用的http,这次对接融360了换成https,首选考虑的就是证书问题,然后自己在onreceiveSserror这个方法里面设置了
handle.proceed,
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// super.onReceivedSslError(view, handler, error);
// if(error.getPrimaryError() == android.net.http.SslError.SSL_INVALID ){// 校验过程遇到了bug
// handler.proceed();
// }else{
// handler.cancel();
// }
Log.i(TAG, “onReceivedSslError” + error);
}

其次设置webview
private void initSetings(WebView wv) {
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setDomStorageEnabled(true);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
wv.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
wv.getSettings().setMixedContentMode(
WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
}

}

最后在这个方法里面
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && url.contains(returnUrl)) {
// 拦截后做处理
// CLogUtil.showToast(getActivity(),”拦截成功”);
Log.i(“taowuhua”, “======h” + url);
financialFinish();
return false;
} else
// CLogUtil.showToast(getActivity(), “拦截失败”);
Log.i(“taowuhua”, “============hahah” + url);
view.loadUrl(url);
return true;

}

return true;好像代表是你本身处理了,webview就不管了,你要是返回false 网页还是会自动加载的 ,谨记