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

版权声明:本文为博主原创文章,转载请注明出处 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对象。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值