2017-05-09 12 views
0

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はエラーのコールバックを返さないのですか?


どちらの場合も、私は利用できないリソースを要求しています。しかし、最初のシナリオでのみエラーコールバックを取得しています。

答えて

1

あなたはそのAPIであるデバイス上で実行している必要があります http://help.websiteos.com/websiteos/example_of_a_simple_html_page.ht リターンがonReceiveHttpErrorへのコールバックURL()。ただし、このメソッドはAPIレベル23からのみ追加されます。 Reference

+0

ありがとうございました。しかし、マシュマロの下でhttpエラーを取得する方法はありませんか? – thedarkpassenger

関連する問題