WebViewClient
を使用する私のコードにWebView
があります。私は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で検査している間、私は次のエラーを取得しています
は明らかにリソースが利用できないことを示している、http://help.websiteos.com/websiteos/example_of_a_simple_html_page.ht 404(見つかりません)GET。なぜWebViewはエラーのコールバックを返さないのですか?
どちらの場合も、私は利用できないリソースを要求しています。しかし、最初のシナリオでのみエラーコールバックを取得しています。
ありがとうございました。しかし、マシュマロの下でhttpエラーを取得する方法はありませんか? – thedarkpassenger