我正在使用AFNetworking
,想知道当用户连接到没有活动互联网连接的wifi网络时如何检测情况。
我重现了这种情况,即在不连接DSL线路的情况下为路由器供电。
AFNetworking return AFNetworkReachabilityStatusReachableViaWiFi = 2
我的代码:
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
self.isInternetAvialable = status > 0;
}];
谢谢
我重新编写了代码,就像
AFNetworkReachabilityManager* manager = [AFNetworkReachabilityManager managerForDomain:@"http://www.google.com"];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
self.isInternetAvialable = status > 0;
}];
[manager startMonitoring];
现在该块永远不会被调用!
[AFNetworkReachabilityManager sharedManager]
您可以使用[AFNetworkReachabilityManager managerForDomain:(NSString *)domain]
并传递适当的主机名(例如“ www.google.com”),而不是使用仅监视网络连接的主机名,通过这种方式,您可以测试所连接的网络是否可以访问Internet-仍然会被其欺骗本地DNS和Web服务器,但我认为这不太可能有人这样做。
拥有AFNetworkReachabilityManager
共享帐户后,您可以像设置共享管理器一样设置更改块
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句