2013-05-29 3 views
0

Я заметил странную ошибку в своем веб-представлении. У меня есть приложение, которое проверяет, подключено ли устройство к Интернету, если оно подключено, тогда изображение ошибки остается скрытым. Если он не подключен, я покажу изображение ошибки. Дело в том, что если я попытаюсь нажать на другую ссылку до того, как страница закончит загрузку, didFailLoadWithError: запускает и отображает изображение проблемы с подключением. Вот код, я использую:`didFailLoadWithError:` Проблемы

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL], 
      ([email protected]"NO":@"YES")); 
} 

-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error { 

    NSLog(@"No internet connection"); 
    _connectionError.hidden = NO; 
} 

Если я буду ждать, пока я не вижу «еще грузится» в журнале, а затем нажмите другую ссылку, все хорошо. Если я нажму ссылку до того, как увижу это сообщение, то didFailLoadWithError: запускает и устраняет проблему подключения. Я чрезвычайно новичок в Objective-C и программировании вообще, поэтому я понятия не имею, как это исправить.

Есть ли какие-либо простые, что я могу иметь didFailLoadWithError: запускать только один раз, когда приложение запускается?

+0

В принципе, я просто ищу способ запустить 'didFailLoadWithError:' только один раз в приложении. – John

ответ

1

Решение, которое я использовал, это проверить код ошибки. Если код равнялся ошибке подключения, я отключил изображение ошибки.

1

Вызывается didFailLoadWithError каждый раз, когда веб-представление не загружается, что происходит при попытке загрузить другую страницу до того, как текущая страница будет завершена.

Вы должны попробовать другие методы, чтобы обнаружить, если нет подключения к Интернету, например, с помощью достижимости: http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

Другого способа просто вызов stopLoading в WebView: shouldStartLoadWithRequest: navigationType: метод делегата для вашего конкретного случая срабатывания didFailLoadWithError когда пользователь нажимает на другую ссылку, пока предыдущая ссылка все еще загружается в веб-представлении.

+0

Я пробовал способность достижимости, но это был полный беспорядок и пошел мне на голову. Я попытаюсь вызвать 'stopLoading' в' webView: shouldStartLoadWithRequest: navigationType: 'прямо сейчас. – John

+0

Это тоже не сработало, в основном я просто ищу способ запустить 'didFailLoadWithError:' только один раз в приложении. – John

+0

@OralB Вы можете вызвать stopLoading перед вызовом метода loadHTMLString? –

 Смежные вопросы

  • Нет связанных вопросов^_^