ios禁用整个应用程序的蜂窝电话

时间:2012-11-13 04:03:37

标签: iphone ios wifi reachability cellular-network

您好我已经阅读了一些帖子,看到我可以使用"可达性"来自Apple的样本,用于检查当前设备是否在Wi-Fi或蜂窝网络上运行,并确定是否可以触发连接。但是我的应用程序在不同的类上有很多webview和HTTP调用,所以我担心我必须在每个启动连接的方法中调用check。我想问一下是否有办法检查网络状态并禁止蜂窝网上的所有流量?非常感谢。

1 个答案:

答案 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上了。