2016-03-28 10 views
1

Ich zeige Fehlermeldung an Benutzer, wenn Webseite nicht geladen ist, wenn keine Internetverbindung besteht.Android: WebViewClient onPageFinished/onReceivedError nicht aufgerufen, wenn Internet nach onPageStarted Anruf geht

Aber das Problem ist: Nach onPageStarted Methode (hier Anzeige Fortschrittsdialog) wird aufgerufen, wenn ich das Internet von mir selbst getrennt dann onPageFinished/onReceivedError Methode nicht aufgerufen wird. Daher kann ich dem Benutzer keine Fehlermeldung anzeigen und den Dialog nicht schließen. Der Fortschrittsdialog wird weiterhin angezeigt.

Ich dachte, dass das WebView eine Zeitüberschreitung hat, die von sich selbst behandelt wird. Aber es ist nicht. Keine Auszeit ist passiert. Ich habe mehr als 15 Minuten gewartet, aber ich habe nichts getan.

Wie könnte ich damit umgehen?

+0

Well [onReceivedError] (http://developer.android.com/reference/android/webkit sehen /WebViewClient.html) ist die Art, Verbindungsfehler zu behandeln. Könnten Sie eine [MVCE] (http://stackoverflow.com/help/mcve) posten? –

Antwort

0

gibt es zwei onReceivedError();

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

dies ist nur für Android M+(API >=23); wenn Sie Gerät die Android-Version api < 23 dieser onReceivedError() nicht

ausgeführt werden kann
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){...} 

diese Methode für alle Android-Version ist;

ps:errorCode ist bedeutet nicht HTTP-Statuscode(wie 404, 403), Sie api doc