2011-12-13 2 views
2

дорогой Stackover сообщества,простой вид оповещения для проверки соединения в веб-просмотра

Почти неделю я изо всех сил вокруг с тем, что я должен иметь соединение проверить для моего веб-просмотра, так что я Выжившие Процесс проверки приложений Apple :-)

Я знаю, что могу использовать образец Reachablity, но для меня как новичка я бы сказал, что он не умен, чтобы иметь дело с таким кодом.

я узнал, что это становится немного проще с простым предупреждением и кодой, как это:

-(void)webview:(UIWebView *)webview didFailLoadWithError:(NSError *)error { 

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
               message:@"Can't connect. Please check your internet Connection" 
               delegate:self 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert show]; } 

Моей проблема заключается в том, что я реализовал этот код в ую моем Webviewcontroller и подключен делегат к Fileowner, но приложение не будет так приятно, чтобы показать мне сообщение об ошибке :-)

В настоящее время я использую Xcode 4.2.1 с ARC-поддержкой и раскадровки.

Кто-нибудь, пожалуйста, дайте мне пошаговое руководство, как получить эту работу? Его, вероятно, последний код, который мне нужен для моего приложения.

Заранее спасибо

ответ

5

метод делегата:

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

Примечание это "-(void)webView" не "-(void)webview". Просто загладьте «v» в «представлении», и он будет работать.

Чтобы ответить на ваш следующий вопрос: «Теперь, когда я прекращаю загрузку страницы, появляется сообщение об ошибке. Есть ли другой совет?»

Как вы видите, NSError передается вашей функции. Эта ошибка содержит информацию об ошибке. Вы можете увидеть эту информацию, добавив: NSLog(@"Epic fail with error:%@",error); («Эпический» добавлен для драматического эффекта). При регистрации этой ошибки вы увидите code «свойство». Посредством некоторых экспериментов вы увидите, что это свойство кода изменяется в зависимости от типа ошибки. Кажется, что этот код будет равен -1009 для ошибки соединения. Все возможное errors are enumerated here under "URL Loading System Error Codes". Лучше всего, так как они определены в перечислении, вам не нужно много помнить об этом. Вы можете просто использовать:

-(void)webView:(UIWebView *)webview didFailLoadWithError:(NSError *)error { 
    if (error.code == NSURLErrorNotConnectedToInternet){ 
     NSLog(@"You are not connected"); 
    } 
} 
+0

О, черт возьми, я действительно глуп :-) спасибо, что спасли мою жизнь! – 0815jogger

+0

@ 0815jogger Не чувствую себя плохо, мы все это делали раньше. Если этот ответ решит проблему, пожалуйста, примите это. – NJones

+0

Он решил мою проблему, но как это происходит в жизни. Вы решили один и получаете тысячи новых :-) Теперь, когда я останавливаю загрузку страницы, появляется сообщение об ошибке. Есть еще совет? – 0815jogger

0

TRY ... UIAlertView сигнал тревога * = [[UIAlertView Alloc] initWithTitle: @ "Ошибка" сообщение: [ошибки LocalizedString ] делегата: само cancelButtonTitle: @ "OK " otherButtonTitles: nil];

+0

Что произойдет, если я напишу: message: [error localizedString]? – 0815jogger

+1

Это даст вам причину ошибки – Ali3n

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