2017-05-03 260 views
-1

android WebViewでウェブページを読み込むことができるかどうかを知る必要があります。理想的には、ドキュメントステータスコードを取得し、それが!= 200であるかどうかを確認したいと思います。WebViewClientでサポートされているメソッドが見つかりませんでした。幾分動作Android:WebView onReceivedHttpErrorはステータスコードを返しません!= 200

一つの方法は、#onReceivedHttpError

リソースの読み込み中にHTTPエラーがサーバから受信されたホスト・アプリケーションに通知します。 HTTPエラーにはステータスコード> = 400があります。このコールバックは、メインページだけでなく、すべてのリソース(iframe、imageなど)に対して呼び出されます。したがって、このコールバックでは最低限必要な作業を実行することをお勧めします。サーバー応答の内容は、errorResponseパラメーター内で提供されない場合があることに注意してください。

@Override 
    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
    webView.loadUrl("http://www.google.de"); 
    super.onReceivedHttpError(view, request, errorResponse); 
} 

しかし、何かがWebページを例行方不明.pngのためにロードされている場合でも400以上のステータスコードを返すように、その1は、すぐに呼び出されます。私はhttps://www.httpstatus.io/ ページが読み込まsucessfully WebViewで参考試験として、このサイトを使用してますが.js404onReceivedHttpErrorを呼び出す.pngのようないくつかのファイルをミスしています

WebViewでドキュメントステータスコードを取得するにはどうすればよいですか?

答えて

0

ドキュメントのステータスコードを取得する方法がないようです。回避策は次のようになります。基本的にhttpclientとの接続を開き、そこでステータスコードを確認してから、WebView

などでロードします。

AndroidHttpClient httpClient = new AndroidHttpClient(url); 
     httpClient.get(null, null, new AsyncCallback() { 
      @Override 
      public void onComplete(HttpResponse httpResponse) { 
       if (httpResponse.getStatus() == HttpURLConnection.HTTP_OK) { 
        webView.loadUrl(url); 
       } else { 
        webView.loadUrl("http://www.google.com"); 
       } 
      } 

      @Override 
      public void onError(Exception e) { 
       webView.loadUrl("http://www.google.com"); 
      } 
     }); 

私はBasic-Http-Clientを使用していますが、考え方は、他のhttpClient

と同じです
関連する問題