простой просмотр предупреждений для проверки соединения в веб-представлении - PullRequest
2 голосов
/ 13 декабря 2011

уважаемое сообщество 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]; }

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 13 декабря 2011

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

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

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

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

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

-(void)webView:(UIWebView *)webview didFailLoadWithError:(NSError *)error {
    if (error.code == NSURLErrorNotConnectedToInternet){
        NSLog(@"You are not connected");
    }
}
0 голосов
/ 13 декабря 2011

TRY ... UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ Сообщение об ошибке: [error localizedString] делегат: self cancelButtonTitle: @ "OK" otherButtonTitles: nil];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...