如何使用API​​ 23检查页面本身是否有错误加载?

时间:2016-08-04 20:45:52

标签: java android webview

我试图通过覆盖我的WebView中的onReceivedError来检查页面本身而不是辅助资源是否存在加载问题。

myWebView.setWebViewClient(new WebViewClient() {
    //...

    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {

        //do something with error.getErrorCode()

    }

    //...
});

然而,一旦页面加载完成,即使页面似乎已正确加载,有时我也会得到onReceivedError的垃圾调用,因此无法确定页面是否实际未加载(例如,缓存页面本身的错过。)

我该怎么办?

1 个答案:

答案 0 :(得分:0)

从API 23开始,这个方法已被修改,现在只要有任何东西,甚至是辅助资源(即图像/样式表/脚本)加载错误,就会调用此方法。

修复方法是检查主URL是否等于请求的URL,然后才执行任何操作。

myWebView.setWebViewClient(new WebViewClient() {
    //...

    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {

        if(request.getUrl().toString().equals(myWebView.getUrl())){
             //that's the page that throws the error
        }

    }

    //...
});