4 Stimmen

Android WebViewClient, onErrorReceived wird nicht aufgerufen, wenn ein 404 Fehler auftritt.

Ich habe einen WebView mit einem WebViewClient, der onErrorReceived und onPageFinished definiert.

Der onPageFinished wird korrekt aufgerufen, daher weiß ich, dass der WebViewClient richtig mit dem WebView verbunden ist. Es gibt jedoch etwas JavaScript im WebView, das folgendes aufruft:

location.href="http://kernel.org/asdf/asdf/asdf/asdf";

Und der onErrorReceived-Listener wird nicht aufgerufen, obwohl es sich um einen 404 handelt. Funktioniert es nicht mit JavaScript-Aufrufen?

Bearbeitung: Nach einigen Tests habe ich festgestellt, dass überhaupt keine 404er-Fehler an diese Funktion gemeldet werden. Ich habe hier ein Testprojekt eingerichtet: http://vimtips.org/media/WebViewTest.zip

Es scheint, dass diese Methode nicht verwendet werden kann, um nach 404ern zu suchen. Kennt jemand eine Möglichkeit, dies zu tun?

2voto

York Punkte 473

In der folgenden Situation wird onErrorReceived aufgerufen.

  • ERROR_AUTHENTICATION Benutzerauthentifizierung auf Server fehlgeschlagen
  • ERROR_BAD_URL Fehlerhafte URL
  • ERROR_CONNECT Verbindung zum Server konnte nicht hergestellt werden
  • ERROR_FAILED_SSL_HANDSHAKE SSL-Handshake konnte nicht durchgeführt werden
  • ERROR_FILE Allgemeiner Dateifehler
  • ERROR_FILE_NOT_FOUND Datei nicht gefunden
  • ERROR_HOST_LOOKUP Server- oder Proxy-Hostname-Lookup fehlgeschlagen
  • ERROR_IO Lesen oder Schreiben zum Server fehlgeschlagen
  • ERROR_PROXY_AUTHENTICATION Benutzerauthentifizierung am Proxy-Server fehlgeschlagen
  • ERROR_REDIRECT_LOOP Zu viele Weiterleitungen
  • ERROR_TIMEOUT Verbindungstimeout
  • ERROR_TOO_MANY_REQUESTS Zu viele Anfragen während des Ladens
  • ERROR_UNKNOWN Generischer Fehler
  • ERROR_UNSUPPORTED_AUTH_SCHEME Nicht unterstütztes Authentifizierungsschema (nicht basic oder digest)
  • ERROR_UNSUPPORTED_SCHEME Nicht unterstütztes URI-Schema

Eigentlich sind keine der HTTP-Antwortcodes in der obigen Liste enthalten.

1voto

synic Punkte 25854

Es kann nicht gemacht werden. Zumindest nicht auf eine nicht-hackische Weise.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X