Самый простой способ определить, доступно ли подключение к Интернету iPhone?

Я ищу, чтобы определить, доступно ли подключение к Интернету на iPhone. Для приложения не имеет значения, является ли это Wi-Fi или EDGE или что-то еще.

Использование кода из примера SeismicXML, похоже, не работает, и пример кода для повышения производительности от Apple кажется излишним для приложения …

Есть ли быстрый и простой способ определения доступности сети на iPhone?

Спасибо, Бен

Следуйте следующим 3 простым шагам –

Шаг 1: включите в проект проект “SystemConfiguration.framework”

Шаг 2. Включите Apple Reachability.h и Reachability.m из примера использования

Шаг 3: Теперь добавьте этот код в любом месте вашего .m.

Reachability* wifiReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; NetworkStatus netStatus = [wifiReach currentReachabilityStatus]; switch (netStatus) { case NotReachable: { NSLog(@"Access Not Available"); break; } case ReachableViaWWAN: { NSLog(@"Reachable WWAN"); break; } case ReachableViaWiFi: { NSLog(@"Reachable WiFi"); break; } } 

Я включил Apple Reachability.h & .m из своего примера Reachability плюс инфраструктуру SystemConfiguration, упомянутую выше, а затем добавил к моему приложению следующий код, который имеет два преимущества по сравнению с вышеприведенным ответом – он дает вам больше информации, и вы получаете asynchronous уведомления об изменении состояния сети.

В своем делете приложения или аналогичном случае добавьте это при запуске:

 [self startReachability]; 

Затем добавьте этот метод, который вызывается при изменении сети:

 #pragma mark Reachability changed - (void)reachabilityChanged:(NSNotification*)aNote { self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus]; switch (self.remoteHostStatus) { case NotReachable: debugForComponent(kDebugMaskApp,@"Status changed - host not reachable"); break; case ReachableViaCarrierDataNetwork: debugForComponent(kDebugMaskApp,@"Status changed - host reachable via carrier"); break; case ReachableViaWiFiNetwork: debugForComponent(kDebugMaskApp,@"Status changed - host reachable via wifi"); break; default: debugForComponent(kDebugMaskApp,@"Status changed - some new network status"); break; } } 

Я понял это после взлома XCode после попытки скопировать SystemConfiguration.framework в … Вот решение для всех, кто может быть заинтересован …

Добавьте SystemConfiguration.framework в ваш проект, выполните #import , а затем добавьте следующий код:

 SCNetworkReachabilityFlags flags; BOOL receivedFlags; SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(CFAllocatorGetDefault(), [@"google.com" UTF8String]); receivedFlags = SCNetworkReachabilityGetFlags(reachability, &flags); CFRelease(reachability); if (!receivedFlags || (flags == 0) ) { // internet not available } else { // internet available } 

Ну, надеюсь, это все равно поможет кому-то … Похоже, обычный способ отклонить приложение …

Ссылка на пример достижимости;
http://developer.apple.com/iphone/library/samplecode/Reachability/index.html

Это самое быстрое и простое решение для вашей проблемы:

 ([NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]]!=NULL)?YES:NO; 

Он вернет YES если он подключен или NO если это не так. Он просто пытается загрузить Google, и если он преуспеет, он возвращает YES .

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

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

  • Каков наилучший способ поместить c-struct в NSArray?
  • Рисование маршрута в MapKit в iPhone SDK
  • Возвратитесь к поведению приложения после разговора по телефону в собственном коде, чем UIWebView
  • Анимация пользовательского свойства подclassа CALayer
  • Разработка iPhone: как создать цветной или полупрозрачный фон для UIActionSheet?
  • Как сделать ImageView UITableViewCell фиксированным, даже когда изображение меньше
  • Воспроизвести сигнал оповещения (то же, что и мелодия вызова по умолчанию)
  • viewWillDisappear: Определяет, будет ли отображаться controller просмотра или показывается controller подзадачи
  • Где разместить «Core Data Stack» в приложении Cocoa / Cocoa Touch
  • Перенос права собственности на приложение iPhone в хранилище приложений
  • Проверка подлинности электронной почты на textField в iPhone sdk
  • Давайте будем гением компьютера.