Como eu sei quando uma página não foi capaz de carga em UIWebView em vez de ser “Stopped” pelo usuário?

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

Pergunta

Eu tenho um UIWebView dentro do meu aplicativo que estou usando para fornecer funcionalidade de navegação na web.

Eu tenho um botão no meu barra de ferramentas que chama

-(void)stopLoading;

no UIWebView. O problema com isso é que quando esse método é enviado para o ponto de vista web, o delegado recebe o

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

mensagem. O erro que acompanha esta chamada é: Operação não pôde ser concluída. (Erro NSURLErrorDomain -999.)

Eu também uso a mensagem didFailLoad para dizer se a página realmente falhou em carga -. E, nesse caso, eu exibir uma mensagem de html formatado para usuário para se comunicar esta falha para eles

Assim, o problema é que se o usuário pressiona o botão de parada, a página de erro é mostrada em vez de apenas mostrar o que quer que partes da página carregada antes de ser parado.

Eu esperava que NSError.h continha uma enumeração de códigos de erro que eu poderia comparar contra - mas parece que eu vou ter que fazer o meu próprio com base em minhas observações sobre os códigos de erro que saem em meus logs - que é inferior a ideal, uma vez que poderia mudar no futuro ...

Qualquer sugestão seria ótimo, obrigado.

Foi útil?

Solução 2

A melhor maneira que eu poderia encontrar para resolver este era criar um enum usando os códigos de erro dadas pelo webView.

Ele não olha como eles estão indo para a mudança, mas se o fizerem, bem -. Hum ho

Então, agora, no meu método de falha de carga Eu simplesmente comparar o código de erro do objeto de erro com o meu enum, e eu posso ver o que aconteceu - meio que parece com isso:

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

Outras dicas

Esses códigos de erro são definidos no NSURLError.h, na Foundation.framework

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top