我正在开发一款iPad应用,需要经常连接到公开托管的网络服务器。我有一个需要身份验证的Wi-Fi网络,并在登录30分钟后超时。
我正在使用Reachability类,但我无法在应用中获得我想要的网络感知。只要用户连接/断开Wi-Fi网络,Reachability类就会小心,但是如果身份验证超时,Reachability类会给我错误的结果。
Reachability *internetReach=[Reachability reachabilityWithHostName:@"www.google.com"];
if ([internetReach currentReachabilityStatus] == NotReachable) {
[self alertMessage:@"Wi-Fi connection not available"];
}
当Wi-Fi超时时,我没有收到预期的提醒信息。我需要的是我的应用程序应该认识到Wi-Fi已经超时,它应该为用户自动显示Safari Wi-Fi身份验证表(就像在App Store,YouTube等中发生的那样)。
答案 0 :(得分:1)
我认为你错过了一些代码。首先,您必须启动通知程序,然后您需要存储Reachability
引用,例如作为财产。然后,您需要实现通知方法。更改后,您的代码可能如下所示:
-(void)viewWillAppear:(BOOL)animated {
Reachability *internetReach=[Reachability reachabilityWithHostName:@"www.google.com"];
[internetReach startNotifier];
self.internetReachable = internetReach;
}
-(void)checkNetworkStatus:(NSNotification*)notice;
{
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
if ([internetReachable currentReachabilityStatus] == NotReachable) {
[self alertMessage:@"Wi-Fi connection not available"];
}
}