我试图通过覆盖我的WebView中的onReceivedError
来检查页面本身而不是辅助资源是否存在加载问题。
myWebView.setWebViewClient(new WebViewClient() {
//...
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
//do something with error.getErrorCode()
}
//...
});
然而,一旦页面加载完成,即使页面似乎已正确加载,有时我也会得到onReceivedError
的垃圾调用,因此无法确定页面是否实际未加载(例如,缓存页面本身的错过。)
我该怎么办?
答案 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
}
}
//...
});