Android WebViewClient onReceivedError n'est pas appelé à une erreur 404
hi
Dans une vue de liste, j'ai une webview qui devrait charger un fichier image à partir du serveur,quand il n'y a pas d'image présent, j'ai besoin d'un mannequin de l'image .J'ai essayé
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 );
}
});
J'ai cette webview avec un mannequin image dans un FrameLayout, onPageFinished auditeur est appelé après chaque url de l'image est chargée, mais onReceivedError n'est pas appelé à une url qui produisent une erreur 404.Tout deviner comment le faire.
Il semble qu'il ne peut pas être fait: stackoverflow.com/questions/5124052/...
J'ai essayé d'utiliser HttpClient et sur la vérification de la HttpStatus j'ai chargé l'url si le HttpStatus retour de message d'erreur, puis-je retenir de chargement de l'url, au lieu d'afficher une non-image png.Cette méthode est lourde,peut-on proposer une alternative à cela.
Il ne peut être fait avec WebView, vous pouvez cependant utiliser la base HTTPClient et vérifier le code de réponse. Voici un lien pour savoir comment faire: stackoverflow.com/questions/2592843/...
J'ai essayé d'utiliser HttpClient et sur la vérification de la HttpStatus j'ai chargé l'url si le HttpStatus retour de message d'erreur, puis-je retenir de chargement de l'url, au lieu d'afficher une non-image png.Cette méthode est lourde,peut-on proposer une alternative à cela.
Il ne peut être fait avec WebView, vous pouvez cependant utiliser la base HTTPClient et vérifier le code de réponse. Voici un lien pour savoir comment faire: stackoverflow.com/questions/2592843/...
OriginalL'auteur ganesh | 2011-03-25
Vous devez vous connecter pour publier un commentaire.
J'ai dû remplacer WebViewClient.onReceivedHttpError() au lieu de WebViewClient.onReceivedError().
Depuis le client web de la documentation:
OriginalL'auteur Justin Fiedler
J'ai eu le même problème aujourd'hui,
Le problème: onPageFinished est appelé toujours. Si il y a une erreur, elle sera appelée après onErrorReceived.
C'est la solution que j'ai trouvé:
OriginalL'auteur sourcerebels
Que le code est correct; est-il possible que votre page n'est pas de générer une erreur 404?
OriginalL'auteur Matthew Willis
@Neeraj est sur la bonne voie, mais mon application permet un rafraîchissement de la webview, donc j'ai besoin d'effacer l'erreur de l'état, avant toute nouvelle URL de la charge. En outre, l'indicateur d'erreur doit être stocké en tant que membre de données sur l'activité parent afin qu'il persiste pendant onPageStart() et onPageFinish()--ces méthodes peuvent être appelées après onError().
OriginalL'auteur larham1
OriginalL'auteur Neeraj