我的代码中有WebView
,它使用自定义WebViewClient
。我在我的CustomWebViewClient
文件中覆盖了各种错误方法。Android WebViewClient未返回适当的错误
public class CustomWebViewClient extends WebViewClient {
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onReceivedHttpError(
WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
}
}
现在,我要处理各种类型的错误在我的WebView。我尝试了以下场景。
1)加载一个不存在的本地html “file:///android_asset/main.html”。
- 在这种情况下,我正在回调第一种方法,即OnReceivedError()
。
2)加载托管在网上的html页面,即http://help.websiteos.com/websiteos/example_of_a_simple_html_page.ht。这个html也不存在。但在这种情况下,我没有得到任何回调的错误方法。
虽然在Chrome检查,我收到以下错误
GET http://help.websiteos.com/websiteos/example_of_a_simple_html_page.ht 404(未找到),这清楚地表明,资源不可用。那么为什么WebView不会返回任何错误回调?
在这两种情况下,我正在请求一个不可用的资源。但是我只在第一种情况下收到错误回调。
感谢您的信息。但是没有办法得到棉花糖下面的http错误吗? – thedarkpassenger