Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone ios不允许整个应用程序使用手机_Iphone_Ios_Wifi_Reachability_Cellular Network - Fatal编程技术网

Iphone ios不允许整个应用程序使用手机

Iphone ios不允许整个应用程序使用手机,iphone,ios,wifi,reachability,cellular-network,Iphone,Ios,Wifi,Reachability,Cellular Network,嗨,我读过一些帖子,看到我可以使用苹果的“可达性”样本来检查当前设备是否在Wi-Fi或蜂窝网络上运行,并决定是否可以启动连接。然而,我的应用程序中有很多不同类的WebView和HTTP调用,因此我恐怕必须在每个启动连接的方法中调用check。我想问一下,是否有任何方法可以检查网络状态并禁止手机上的所有流量?非常感谢。您正在查找可通过无线网络访问的状态,该状态通过NSNotification广播。您可以在代码中这样设置: @property (nonatomic, assign) NetworkS

嗨,我读过一些帖子,看到我可以使用苹果的“可达性”样本来检查当前设备是否在Wi-Fi或蜂窝网络上运行,并决定是否可以启动连接。然而,我的应用程序中有很多不同类的WebView和HTTP调用,因此我恐怕必须在每个启动连接的方法中调用check。我想问一下,是否有任何方法可以检查网络状态并禁止手机上的所有流量?非常感谢。

您正在查找可通过无线网络访问的状态,该状态通过NSNotification广播。您可以在代码中这样设置:

@property (nonatomic, assign) NetworkStatus currentNetStatus;


然后,在进行网络呼叫之前,很容易检查
currentNetStatus
。如果这不等于
通过wifi可访问
,则您不在wifi上。

可访问性允许您观察连接更改NSNotification“kReachabilityChangedNotification”,从而消除此问题。感谢您的回答,这是解决我问题的一种方法。但情况有点复杂,比如说,目前我有一个下载文件的连接,网络状态从wifi变为蜂窝,我能立即取消连接吗?你通过以下方式取消请求这能回答你的问题吗?非常感谢。我还没有试过,因为我用了另一种方法来解决这个问题。
- (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];
}