UIWebView ne va pas à didFailLoadWithError quand webLink n'est pas trouvé?
- Je utiliser UIWebView
de charge web à partir d'un webLink
et UIWebViewDelegate
pour contrôler l'état d'erreur:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:webLink]]];
- (void)webViewDidStartLoad:(UIWebView *)webView{
NSLog(@"START LOAD");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSLog(@"FINISH LOAD");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
NSLog(@"ERROR : %@",error);
}
Mais quand webLink
pas trouvé, il n'est PAS aller à didFailLoadWithError
aller à la startLoad
et didFinishLoad
. Comment passer de la situation lorsque webLink
pas trouvé?
S'il vous plaît aider!
source d'informationauteur Jack
Vous devez vous connecter pour publier un commentaire.
Malheureusement, 404 (ou codes similaires) ne sont pas considérées comme des erreurs par
UIWebView
car un HTML a pas reçu de réponse. Pire, leUIWebView
ne capte pas les codes de réponse pour nous, de sorte que vous avez à faire que manuellement, viaNSURLConnection
. Voici un moyen de traiter avec elle:Remarque, dans mon application, je ne suis pas la seule vérification de codes d'état, mais je suis aussi vérifier les redirections (que vous pouvez ou ne voulez pas faire). Je le fais parce que certains FAI intercepter les requêtes HTTP, et si le site de destination n'est pas trouvé, vous rediriger vers leur propre page web de recherche (qui je pense est un peu effrayant de savoir que mon FAI est de vérifier chaque site web que je recherche). Et si vous faites affaire avec des iPhones qui sont connecter via le wifi, vous avez à faire face à ces aléas.
Ainsi, par exemple, mon code ci-dessus est à la recherche de "http://www.applecom/pages" (dans laquelle j'ai volontairement omis la période de ".com", qui devrait l'échec de la recherche de DNS), mais pour qui mon FAI, Verizon, a intercepté la demande et redirigé par connexion HTTP vers leur propre page de recherche et en tant que tel, mon application est de déclaration:
Vous pourriez envie de penser à ce genre de redirections sont acceptables (par exemple, si vous allez à "www.adobephotoshop.com" et il vous redirige vers "www.adobe.com") et quels ne le sont pas (par exemple, si je vais à l' "www.applecom" et il me redirige vers "search.dnsassist.verizon.net". J'ai peut-être se soucier assez étroite problème (qui affecte le moi à cause de mon fournisseur d'accès internet), mais c'est quelque chose à envisager.