Come faccio a sapere quando una pagina non è riuscito a caricare in UIWebView invece di essere “Stopped” da parte dell'utente?

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

Domanda

Ho un UIWebView all'interno del mio programma che sto usando per fornire funzionalità di navigazione web.

Ho un pulsante sulla toolbar che chiama

-(void)stopLoading;

sul UIWebView. Il problema di questo è che quando questo metodo viene inviato alla visualizzazione Web, il delegato riceve il

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

messaggio. L'errore che accompagna il presente invito è: Il funzionamento non potrebbe essere completato. (Errore NSURLErrorDomain -999).

Io uso anche il messaggio didFailLoad per dire se la pagina in realtà non è stato caricato - e in tal caso, visualizzo un messaggio in formato HTML per l'utente a comunicare questo fallimento a loro

.

Quindi il problema è che se l'utente preme il pulsante di arresto, la pagina di errore è mostrato invece di mostrare ciò che le parti della pagina caricata prima di essere fermato.

Avevo sperato che NSError.h conteneva un enum di codici di errore che ho potuto confrontare contro - ma sembra che dovrò fare il mio in base alle mie osservazioni dei codici di errore che vengono fuori nei miei ceppi - che è proprio l'ideale, in quanto potrebbero cambiare in futuro ...

Qualsiasi suggerimento sarebbe grande, grazie.

È stato utile?

Soluzione 2

Il modo migliore che ho trovato per risolvere questo era quello di creare un enum utilizzando i codici di errore fornite dal WebView.

Non sembra come stanno andando a cambiare, ma se lo fanno, bene -. Ho hum

Quindi, adesso, nel mio metodo fallito da caricare semplicemente confrontare il codice di errore dall'oggetto errore con il mio enum, e posso vedere quello che è successo - sembra un po 'come questo:

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

Altri suggerimenti

I codici di errore sono definiti in NSURLError.h, nel Foundation.framework

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top