您的位置:首页 > 移动开发

关于WebView不能加载网页,配置,兼容适配问题

2017-04-20 16:18 639 查看
版权声明:本文为博主原创文章,转载请注明出处 http://blog.csdn.net/a675420400/article/details/70267249。
本人最近用Android中WebView控件来展示网页,多方便就不用多说了,闲话少叙,直接捞干的。

相信大家在用WebView的过程中,有一些同学会遇到WebView不能加载出网页,网上很多的答案都是设置一些属性,例如设置如下属性

mWebView.loadUrl(mUrl);

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.getSettings().setSavePassword(false);
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
// 设置可以支持缩放
mWebView.getSettings().setSupportZoom(true);
// 扩大比例的缩放
mWebView.getSettings().setUseWideViewPort(true);
// 自适应屏幕
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mWebView.getSettings().setLoadWithOverviewMode(true);


大部分手机是可以用以上方法加载出来网页的,
 但因为Android是开源的,各大厂商会有不同的定制,一些Android系统的设备会不信任任何网页的安全证书,导致不能加载网页。如果遇到因为安全证书不能访问的情况可以用如下 代码试试。

mWebView.setWebViewClient(new WebViewClient() {

@Override
public void onPageFinished(WebView view, String url) {

}

@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//super.onReceivedSslError(view, handler, error);
handler.proceed();
}
});


主要运用这个函数 onReceivedSslError 这个函数,这个是因为不信任安全证书不能打开网页的回调, 在其中只要调用 handler.proceed();函数就可以,  值得注意的事要把super去掉,因为通过源码可以看到  super中有取消加载网页的方法。

 另外如果是因为其他问题,本人也建议看看有没有其他错误的回调,本人在这里没做深入研究。

这里再做一点说明WebView设置 WebViewClient的作用是:默认情况下,点击网页中的链接会使用Android系统自带的浏览器打开这个网页,如果希望点击链接会在自己的Browser中响应,必须覆盖WebView的WebViewClient对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息