Comment puis-je vérifier à partir d'Android WebView si une page “404 page not found”?
Je veux vérifier un "404 page not found" à partir d'une WebView et si c'est une erreur 404 alors je reviens à la
page précédente. Ty pour votre aide
MODIFIER également les pages web que je veux voir sont pures .jpg 1.jpg 2.jpg 3.jpg mais je n'ai aucune info de combien d'images existent. Donc, si quelqu'un peut proposer une autre méthode, il est bienvenu de le faire.
- Vous voudrez peut-être consulter ce thread à partir de l'android-groupe pour les développeurs.
Vous devez vous connecter pour publier un commentaire.
De départ SDK 23 (Android M), vous pouvez utiliser
onReceivedHttpError
méthode pour attraper 404 et autres erreurs HTTP. De substituer à l'intérieur de votreWebViewClient
This callback will be called for any resource (iframe, image, etc), not just for the main page
- à partir de la documentationJ'ai peut-être quelques années trop tard, mais voici comment j'ai eu à résoudre, puisque aucune de ces réponses travaillé.
J'ai fini par utiliser onReceivedTitle et en comparant le titre avec le titre de la page (dans ce cas "page non trouvée") à partir du site j'ai essayé de l'ouvrir.
La "pnotfound" sera différente d'un site à l'autre. Mais généralement, un site d'utiliser la même "page non trouvée" par conséquent, vous pouvez utiliser le Titre sur le site.
Vous voudrez peut-être ajouter un autre si pour si vous utilisez plusieurs sites.
Espère que cela aide quelqu'un.
Je voudrais essayer de détecter le chargement de la page 404. Vous pouvez le faire que par la mise en œuvre de
shouldOverrideUrlLoading
méthode dans leWebViewClient
classe.Vous pouvez aussi vérifier si
onReceivedError
événement apparaît, lorsque 404 erreur se produit.Vous n'avez pas besoin de charger complètement la page pour vérifier si elle aboutit à une erreur 404:
WebView
encore n'offre aucun moyen de vérifier le statut HTTP de la page chargée. Cela laisse le développeur avec des solutions externes, tels que @weakwire contribution. Il doit être compris que la solution proposée est d'être utilisé comme un "pré-validation" de l'étape, avant (et si) de déléguer l'URL de chargement de laWebView
. J'ai choisi de laisser la qualité du code sans commentaire, si.Si vous êtes webmaster de la page qui est en cours de chargement dans webview vous pouvez définir le titre de votre page comme '404'. Puis, après votre page est chargée, vous pouvez obtenir la page de titre avec le
getTitle()
méthode. Alors si elle contient404
ou si elle est différente de votre titre de la page, vous pouvez faire ce que vous voulez.Exemple: