今天,我公开了我的 Beta 版应用程序。我在一家酒店,还没有获得 WiFi 的访问代码。在测试可达性时,我注意到它并没有像它应该的那样失败。它已连接到 WiFi,但实际上什么都无法访问,因为我没有登录。这个用例应该包含在reachabilityWithHostname中。这是我的代码:
在 AppDelegate.h 中:
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
Reachability* hostReach;
Reachability* internetReach;
Reachability* wifiReach;
}
在 AppDelegate.m 中:
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
wifiReach = [Reachability reachabilityForLocalWiFi];
[wifiReach startNotifier];
hostReach = [Reachability reachabilityWithHostname: @"http://www.google.com"];
[hostReach connectionRequired];
[hostReach startNotifier];
在需要连接的模块中:
- (BOOL) isInternetReachable
{
Reachability *currentReach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [currentReach currentReachabilityStatus];
return (netStatus == ReachableViaWiFi || netStatus == ReachableViaWWAN);
}
有谁知道如何涵盖这种情况?