Comment puis-je savoir quand une page a échoué à charger dans UIWebView au lieu d'être « stopped » par l'utilisateur?

StackOverflow https://stackoverflow.com/questions/1243854

Question

J'ai un UIWebView dans mon application qui j'utilise pour fournir des fonctionnalités de navigation sur le Web.

J'ai un bouton sur ma barre d'outils qui appelle

-(void)stopLoading;

sur le UIWebView. Le problème est que lorsque cette méthode est envoyée à la vue Web, le délégué reçoit le

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

message. L'erreur accompagnant cet appel est: L'opération n'a pas pu être terminée. (Erreur NSURLErrorDomain -999).

Je l'utilise aussi le message didFailLoad de dire si la page n'a pas fait charger - et dans ce cas, j'afficher un message au format HTML à l'utilisateur de communiquer cet échec les

.

Le problème est que si l'utilisateur appuie sur le bouton d'arrêt, la page d'erreur est affiché au lieu de simplement montrer ce que les parties de la page chargée avant d'être arrêté.

J'avais espéré que NSError.h contenait une énumération des codes d'erreur que je pourrais comparer contre - mais il semble que je vais devoir faire ma propre base de mes observations des codes d'erreur qui sortent dans mes journaux - qui est loin d'être idéal, car ils pourraient changer à l'avenir ...

Toutes les suggestions seraient très bien, merci.

Était-ce utile?

La solution 2

La meilleure façon que je pouvais trouver pour résoudre c'était de créer un ENUM en utilisant les codes d'erreur donnés par WebView.

Il ne semble pas qu'ils vont changer, mais si elles le font, bien -. Ho hum

Alors maintenant, dans ma méthode a échoué à charge je compare simplement le code d'erreur de l'objet d'erreur avec mon ENUM, et je vois ce qui est arrivé - ressemble un peu à ceci:

typedef enum {  
    BrowserErrorHostNotFound = -1003,
    BrowserErrorOperationNotCompleted = -999,
    BrowserErrorNoInternetConnection = -1009
} BrowserErrorCode;

Autres conseils

Ces codes d'erreur sont définis dans NSURLError.h, dans le Foundation.framework

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top