Android WebViewClient onReceivedError wird nicht aufgerufen, um einen 404 Fehler
hi
In einer Listenansicht, ich habe eine webview, die geladen werden sollen eine image-Datei vom server,wenn es kein Bild präsentieren, ich brauche ein dummy-Bild .Ich habe versucht,
holder.image.setWebViewClient(new WebViewClient()
{
@Override
public void onReceivedError( WebView view, int errorCode, String description, String failingUrl)
{
System.out.println("description error" + description);
view.setVisibility( View.GONE );
}
@Override
public void onPageFinished(WebView view, String url) {
view.setVisibility( View.VISIBLE );
}
});
Habe ich diese webview mit einem dummy-Bild in ein FrameLayout, onPageFinished listener wird aufgerufen, nachdem alle Bild-url geladen wird, aber onReceivedError ist nicht genannt für eine url, die ein 404-Fehler.Irgendeine Idee, wie es zu tun.
- Es scheint, dass es nicht getan werden kann: stackoverflow.com/questions/5124052/...
- Ich habe versucht, mit HttpClient und auf die überprüfung der HttpStatus ich geladen wurde, die url, wenn das Ereignis HttpStatus return Fehlermeldung, dann habe ich zurückhalten von url laden, stattdessen zeigen Sie ein no-image-png.Ist diese Methode ist zu schwerfällig,kann einer eine alternative vorschlagen für diese.
- Es kann nicht getan werden, mit WebView, Sie können jedoch die grundlegenden HTTPClient und überprüfen Sie den response-code ein. Hier ist ein link, wie das geht: stackoverflow.com/questions/2592843/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich überschreiben WebViewClient.onReceivedHttpError() anstelle von WebViewClient.onReceivedError().
Vom WebClient-Dokumentation:
Ich hatte das gleiche Problem heute,
Das problem: onPageFinished heißt immer. Wenn es ist ein Fehler, es wird aufgerufen werden, nachdem onErrorReceived.
Dies ist die Lösung, die ich gefunden habe:
@Neeraj ist auf dem richtigen Weg, aber meine app ermöglicht eine Aktualisierung der webview, also muss ich den Fehler löschen Zustand, bevor eine neue URL laden. Darüber hinaus das Fehler-flag werden müssen, werden als Daten-Mitglieds auf das übergeordnete Aktivität, so dass es bestehen bleibt, während onPageStart() und onPageFinish()--diese Methoden aufgerufen werden können nach onError().
Code richtig aussieht; ist es möglich, dass Ihre Seite nicht erzeugen einen 404-Fehler?