0

嗨,我已经阅读了一些帖子,发现我可以使用 Apple 的“可达性”示例来检查当前设备是否在 Wi-Fi 或蜂窝网络上运行,并确定是否可以触发连接。但是,我的应用程序中有很多不同类的 webviews 和 HTTP 调用,所以恐怕我必须在每个将启动连接的方法中调用检查。我想问一下是否有任何方法可以检查网络状态并禁止蜂窝网络上的所有流量?非常感谢。

4

1 回答 1

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上。

于 2012-11-13T04:32:15.473 回答