收集WebView异常的点点滴滴

前言

对于移动端的混合模式开发,一般都会涉及到WebView这一控件,在该控件加载网页的过程中,多多少少都会遇到加载网页失败等情况,那么也该做个记录,记录下这些坑。


1.调用onReceivedError方法的异常情况:

WebView加载网页时,一直跑WebViewClient的onReceivedError方法,而网页是可以正常加载出来的,这就郁闷了。onReceivedError是网页加载失败才调用的,一般也在函数内做网页加载失败的处理,而现在网页是加载出来的,却跑到onReceivedError方法,执行网页失败的操作。

怎解

private WebViewClient client = new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

        }

        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError
                error) {
            super.onReceivedError(view, request, error);
            isReLoading = false;
            loadingDialog.dismiss();
            updateView(false);			//隐藏网页,显示加载失败的原生页面
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            loadingDialog.show();
        }
};

在onReceivedError方法里的第三个回调参数是WebResourceError,那么这个类是否有error的信息呢?通过打Log的方式,打印出下面WebResourceError的方法返回值:

error.getDescription();
error.getErrorCode();
error.toString();

分别输出:

net::ERR_CONTENT_LENGTH_MISMATCH
-1
com.android.webview.chromium.WebViewContentsClientAdapter$WebResourceErrorImpl@34c3f42

####结合上面打印的Log,貌似是网页资源异常的问题,问了后台的,原来是后台在压缩并修改网页资源(图片)导致的,瞎折腾咯…


2.网页在手机加载不出来,报net::ERR_CACHE_MISS

怎解
可能是忘记在文件清单中加网络访问权限

<uses-permission android:name="android.permission.INTERNET"/>

3.网页在手机加载不出来,webView报net::ERR_NAME_NOT_RESOLVER

怎解
无网络或本地没有缓存等情况下才会出现这个


4.网页在手机加载不出来,webView报net::ERR_ADDRESS_UNREACHABLE

怎解
网页对应的url地址已经不存在

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值