¿Cómo sé cuando una página no se carga en UIWebView en lugar de ser “Stopped” por el usuario?

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

Pregunta

Tengo un UIWebView dentro de mi aplicación que estoy usando para proporcionar funcionalidad de navegación web.

Tengo un botón en mi barra de herramientas que se pide

-(void)stopLoading;

en el UIWebView. El problema con esto es que cuando se envía este método a la vista web, el delegado recibe el

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

mensaje. El error que acompaña a esta llamada es: La operación no se pudo completar. (Error NSURLErrorDomain -999.)

También utilizo el mensaje didFailLoad de saber si la página no realmente para cargar - y en ese caso, puedo mostrar un mensaje con formato HTML a usuarios para la comunicación de este fracaso a ellos

.

Así que el problema es que si el usuario pulsa el botón de parada, la página de error se muestra en lugar de simplemente mostrar lo que las partes del página cargada antes de ser detenido.

Yo esperaba que NSError.h contenía una enumeración de los códigos de error que pudiera comparar contra - pero parece que voy a tener que hacer mi propio basado en mis observaciones de los códigos de error que salen en los registros de mi - el cual es menos que ideal, ya que podrían cambiar en el futuro ...

Cualquier sugerencia sería grande, gracias.

¿Fue útil?

Solución 2

La mejor manera que pude encontrar para resolver este era crear una enumeración utilizando los códigos de error dados por la web View.

No parece que van a cambiar, pero si lo hacen, bueno -. Ho hum

Así que ahora, en mi método de no-carga de simplemente comparar el código de error del objeto de error con mi enumeración, y puedo ver lo que ocurrió - se ve un poco como esto:

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

Otros consejos

Los códigos de error se definen en NSURLError.h, en el Foundation.framework

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top