您好我已经阅读了一些帖子,看到我可以使用"可达性"来自Apple的样本,用于检查当前设备是否在Wi-Fi或蜂窝网络上运行,并确定是否可以触发连接。但是我的应用程序在不同的类上有很多webview和HTTP调用,所以我担心我必须在每个启动连接的方法中调用check。我想问一下是否有办法检查网络状态并禁止蜂窝网上的所有流量?非常感谢。
答案 0 :(得分:0)
您正在寻找通过NSNotification广播的ReachableViaWiFi网络状态。您可以在代码中设置如下:
@property (nonatomic, assign) NetworkStatus currentNetStatus;
...
- (void) startListeningForWifi{
Reachability* hostReach = [Reachability reachabilityWithHostName:@"hostName"];
[hostReach startNotifier];
// reachability set up
// Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the
// method "reachabilityChanged" will be called.
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
}
- (void)reachabilityChanged: (NSNotification* )note{
Reachability *curReach = [note object];
self.currentNetStatus = [curReach currentReachabilityStatus];
}
然后,在拨打网络电话之前,可以轻松查看currentNetStatus
。如果那不等于ReachableViaWiFi
那么你就不在wifi上了。