2012-10-22 16 views
19

私は自分のアプリでwebviewを持っていますが、接続によってはwebviewが読み込まれず、デフォルトのWebページが利用できないページが表示されることがあります。私は、webviewが読み込まれなかった場合、警告ダイアログを表示したいと思います。とにかく私は(おそらくshouldOverridePageLoad関数で)webviewが正常にロードされたことを確認できますか?おかげで再びwebviewがページ(アンドロイド)を読み込めなかったかどうかを確認するにはどうすればいいですか?

答えて

46

は、次のようにあなたのWebビューでWebクライアントを使用してください:ダミアンの答えに拡張

webView.setWebViewClient(new WebViewClient(){ 

@Override public void onReceivedError(WebView view, WebResourceRequest request, 
     WebResourceError error) { 
    super.onReceivedError(view, request, error); 
    // Do something 
    } 
}); 
+1

ありがとうございます。私はwebviewクライアントでこのメソッドを見落としているに違いない。これを答えとしてマークします。 – HAxxor

+0

と "onReceivedSslError" – Hugo

+3

あなたはこの回答を見てください:http://stackoverflow.com/a/33419123/149008 onReceivedErrorはAPI23で廃止されています。 – nacho4d

9

WebViewClientを使用して、ロードするWebページの成功と失敗をチェックするWebViewClientで利用可能な4人のリスナーがあります。

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
    } 

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

    @Override 
    public void onReceivedHttpError(
      WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
    } 

    @Override 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, 
            SslError error) { 
    } 
}); 

もあります:

上記のコードで言及したその過負荷の賛成で廃止されました
@Override 
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
    } 
}); 

関連する問題