今天遇到一个h5页面加载空白的问题,只有个别页面才有这种空白问题。
检查才发现是 WebView可以用来加载http和https网页到本地应用的控件。但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www.baidu.com”)之类的页面。
但是,当load通过ssl加密的https页面,但是如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像自带的浏览器一样弹出提示。
因此,我们必须针对这种情况进行处理。
解决方法
webview.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // 不要使用super,否则有些手机访问不了,因为包含了一条 handler.cancel() // super.onReceivedSslError(view, handler, error); // 接受所有网站的证书,忽略SSL错误,执行访问网页 handler.proceed(); } }
问题 由此解决。