Проверьте наличие Интернета в приложении UIWebView на jQuery .click ()

Я использую этот код для проверки Интернета, когда приложение открывается в первый раз:

//No Internet Connection error code -(void)webView:(UIWebView *)webVIEW didFailLoadWithError:(NSError *)error { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection!" message:@"In order to use this app you need an active Internet connection!" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil, nil]; [alert show]; } //Close app from Alert View - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { exit(0); } 

У меня есть приложение UIWebView, которое имеет функцию jQuery .click (). Есть ли способ проверить Интернет снова, как только пользователь нажмет эту кнопку?

Взгляните на образец кода Apple. В проекте Reachability показано, как определить соединение

http://developer.apple.com/iphone/library/samplecode/Reachability/index.html

Имейте в виду, что клик не обязательно запрашивает больше ресурсов по сетевому соединению.

UIWebViewDelegate имеет webView:shouldStartLoadWithRequest:navigationType , который будет вашим другом здесь. Чтобы активировать его, когда вы хотите (по клику или другим действиям), установите источник скрытого iframe для некоторого фиктивного значения и проверьте это значение в методе делегата (который будет запускать ваш тест и возвращать NO .

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

вы можете сделать так:

в функции click () вы должны добавить этот код:

 window.location = "fake://myApp/checkForInternet"; 

в коде Objective-C добавьте это:

 -(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *link = request.URL.absoluteString; if ([link isEqualToString:@"fake://myApp/checkForInternet"]) { // check for Reachability here return NO; } return YES; } 

обратите внимание, что в этом примере -webView: shouldStartLoad … вызывается только один раз для каждого события в webView. Я могу предоставить более сложный код, если вы хотите дважды или более дважды проверять одну функцию javascript на одном мероприятии

читайте о проверке достижимости, которую вы можете, поскольку @ Rajneesh071 сказал, в документации Apple или вот проект на GitHub

Если вы используете код Reachability от Apple или аналогичный, вам нужен метод currentReachabilityStatus ; иначе вызовите базовую функцию SCNetworkReachabilityGetFlags

  • как убрать клавиатуру iOS на табличном представлении
  • Как проверить, имеет ли Core Data уже значение?
  • IOS: добавление объекта в определенную позицию NSMutableArray
  • Не получать push-уведомление при использовании профиля распределения доступа adhoc
  • Не удается установить приложение в dev iPhone
  • Использование диспетчера пакетов Swift3 с Xcode 8 без везения
  • Как вы можете узнать строку кода, в которой курсор находится в Xcode?
  • Инструменты говорят, что куча растет
  • Является ли мой проект xcode дублирующим?
  • Xcode 4 эквивалент отладчика
  • Может ли iOS-инфраструктура, созданная Xcode 6, использоваться в предыдущих версиях Xcode
  • Давайте будем гением компьютера.