Как узнать, что страница не загрузилась в UIWebView, а не была «остановлена» пользователем?

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

Вопрос

В моем приложении есть UIWebView, который я использую для обеспечения функций просмотра веб-страниц.

У меня есть кнопка на панели инструментов, которая вызывает

-(void)stopLoading;

в UIWebView.Проблема в том, что когда этот метод отправляется в веб-представление, делегат получает

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

сообщение.Ошибка, сопровождающая этот вызов: Операцию не удалось завершить.(Ошибка NSURLErrorDomain -999.)

Я также использую сообщение DidFailLoad, чтобы узнать, действительно ли страница не удалось загрузить, и в этом случае я показываю пользователю сообщение в формате html, чтобы сообщить ему об этой ошибке.

Итак, проблема в том, что если пользователь нажимает кнопку «Стоп», вместо того, чтобы просто показывать те части страницы, которые были загружены до остановки, отображается страница с ошибкой.

Я надеялся, что NSError.h содержит список кодов ошибок, с которыми я мог бы сравниться, но, похоже, мне придется создать свой собственный, основываясь на моих наблюдениях за кодами ошибок, которые появляются в моих журналах, а это меньше, чем идеально, так как они могут измениться в будущем...

Любые предложения были бы великолепны, спасибо.

Это было полезно?

Решение 2

Лучший способ решить эту проблему — создать перечисление, используя коды ошибок, предоставленные webView.

Не похоже, что они собираются меняться, но если и изменятся, ну хм.

Итак, теперь в моем методе с ошибкой загрузки я просто сравниваю код ошибки из объекта ошибки с моим перечислением и вижу, что произошло - выглядит примерно так:

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

Другие советы

Эти коды ошибок определены в NSURLError.h в Foundation.framework.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top