Можно ли получать уведомление или что-то внутри моего приложения, когда доступ к интернету BECOMES доступен. Я знаю о достижимости и всех вещах. Но я хочу начать некоторые ожидающие NSUrlConnections, когда доступ к Интернету станет доступным на устройстве. Есть ли простой способ сделать это, потому что я не хочу использовать поток цикла, который постоянно проверяет доступность. Какие-либо предложения?Уведомление, когда Интернет стал доступен на iOS
ответ
Хорошо, здесь очень хороший пост о достижимости: http://www.mikeash.com/pyblog/friday-qa-2013-06-14-reachability.html (проверьте комментарии ниже!)
Tldr: Вы можете запустить блок, когда ваше соединение назад, но это решение не является совершенным. Существует 100% надежный способ сделать это (за исключением попытки цикла), но вы можете попытаться смешать эти подходы.
Edit: Комментарий к @ Jonah.at.GoDaddy ответ:
достижимости может дать вам как ошибки уведомления о соединении: ложные положительные и ложно отрицательные (вы можете проверить его на WWDC 2011 сессии, я не помню, какой из них; есть две о сети). Итак, я хочу сказать: вы никогда не должны полагаться только на это уведомление. Вы можете активировать обновление при изменении статуса, но должен быть другой способ сделать это (взаимодействие с пользователем или какое-то активное ожидание).
Вот код, который я использую ... это может быть немного больше, чем нужно:
-(void)checkNetworkStatus
{
// check for internet connection
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
// check if a pathway to a random host exists
self.hostReachable = [Reachability reachabilityWithHostname:@"google.com"];
[self.hostReachable startNotifier];
}
-(void) checkNetworkStatus:(NSNotification *)notice
{
NetworkStatus hostStatus = [self.hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
DDLogInfo(@"A gateway to the host server is down.");
if(self.canReachGoogle)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle: LOCALIZED_NoInternetConnection
message: LOCALIZED_ConnectionNeeded
delegate:self cancelButtonTitle:LOCALIZED_Ok otherButtonTitles:nil];
[alert show];
}
self.canReachGoogle = NO;
break;
}
case ReachableViaWiFi:
{
DDLogInfo(@"A gateway to the host server is working via WIFI.");
self.canReachGoogle = YES;
break;
}
case ReachableViaWWAN:
{
DDLogInfo(@"A gateway to the host server is working via WWAN.");
self.canReachGoogle = YES;
break;
}
}
DDLogInfo(@"Network connection has changed and is now: %@", self.canReachGoogle ? @"enabled" : @"disabled");
}
Да, но это зависит от Google. Не лучший подход. А также я попросил изменения в достижимости, а не достижимости в определенное время. – user2387149
- 1. Сценарий Bash для уведомления, когда доступен интернет
- 2. Скрыть кнопку в UIWebView, когда доступен Интернет
- 3. Как отправить автоматически запрос, когда интернет доступен на Android
- 4. Как загрузить сохраненные данные, когда доступен доступ в Интернет?
- 5. Доступен OpenCL на iOS
- 6. WP7 проверить, доступен ли интернет
- 7. jQuery Mobile Store данные локально и синхронизируются, когда доступен интернет
- 8. Почему время доступа SharedPreferences увеличивается, когда доступен Интернет? - Android
- 9. Авто представить форму изображения, когда Интернет доклада доступен
- 10. Как хранить и отправлять файлы в очереди, когда доступен интернет
- 11. URLMonitor не обнаруживает, когда Интернет не доступен в Flex
- 12. iOS Remote Notifications не работает, когда «контент доступен»: 1
- 13. Уведомление о чтении через интернет
- 14. ACAccountTypeIdentifierLinkedIn не доступен на IOS
- 15. Как добавить WebView и нет иконки Интернет CONECTION, когда Интернет не доступен
- 16. Когда атрибут product.permalink стал устаревшим?
- 17. Уведомления, когда новый RSS доступен
- 18. Когда «guard let foo = foo» стал законным?
- 19. ios удаленное уведомление, когда приложение убито
- 20. Автоматическое уведомление SMS на iOS
- 21. Нажмите на локальное уведомление iOS
- 22. IOS Нажмите конкретный вид, когда приходит уведомление
- 23. Проверьте, доступен ли Интернет, включая 4G
- 24. Как обновить веб-страницу, если интернет доступен
- 25. Показать сообщение об ошибке Интернет не доступен
- 26. получение «Интернет не доступен» с sdkman
- 27. Использование AsyncTask, чтобы проверить, если Интернет доступен
- 28. UnknownHostException Когда хост доступен.
- 29. Как показать уведомление, когда приложение закрыто (iOS)?
- 30. Приостановить уведомление устройствам iOS, когда недействительный токен
Из вашего вопроса я не понимаю, почему с помощью достижимости и регистрации для ReachabilityChangedNotification s не будет работать , Что вы ищете, чего невозможно достичь? – Alex
[Достижимость] (https://developer.apple.com/Library/ios/samplecode/Reachability/Introduction/Intro.html) действительно стоит другого взгляда. Вы не должны зацикливаться, но, как и этот пример кода, вызывайте 'startNotifier', и вы получите уведомление при изменении подключения к Интернету. – Rob
Я не согласен, что этот вопрос повторяется. Ответ предоставлен об использовании Reachability, но вопрос в том, чтобы обновить статус соединения. Как я уже писал в своем ответе, «Достижимость» ничего не гарантирует, это скорее помощник. Предложив кому-то, что Доходность - это правильный ответ, может привести к тому, что в приложении будут применены нечестивые состояния! –