iOS:iPhone什么时候从wifi切换到移动网络?

时间:2016-07-28 07:43:11

标签: ios objective-c iphone networking

我正在开发一个iOS应用程序,其主要功能是与本地wifi网络中的设备进行通信。这意味着需要wifi连接,但互联网连接不是。

此外,该应用程序尝试在应用启动时从互联网上获取一些数据(如当前软件版本,关于关键更新信息等)。

现在我有一个测试场景。没有连接到互联网的wifi网络。 iPhone已登录此wifi。当应用程序启动时,行为是不可预测的。

由于wifi没有互联网连接,有时从互联网上获取的数据会失败。但是从互联网上获取的20-30%的数据工作得很好。在这种情况下,您可以看到wifi符号消失,LTE符号出现两三秒钟,然后再次出现wifi符号。

显然,有时我的iPhone会从wifi切换到移动网络以获取一些数据而不是返回wifi,有时则不会。是否可以控制这种行为?

以下是我从互联网上获取数据的代码:

NSURL *URL = [NSURL URLWithString:@"https://myurl.com/data.xml"];
NSData *data = [[NSData alloc] initWithContentsOfURL:URL];
NSError *error = nil;

NSDictionary *dictionary = [XMLReader dictionaryForXMLData:data error:&error];
if(dictionary){
    currentOne = [[[dictionary valueForKey:@"versions"] valueForKey:@"myapp"] valueForKey:@"current"];
    nextOne = [[[dictionary valueForKey:@"versions"] valueForKey:@"myapp"] valueForKey:@"next"];

    if(currentOne && nextOne){
        //Check app versions
    }
} else {
    NSLog(@"--------------------------------------");
    NSLog(@"Versions dict empty - no internet connection");
    NSLog(@"--------------------------------------");
}

0 个答案:

没有答案