仅通过wifi下载内容或使用wifi和3G网络下载

时间:2012-08-22 02:03:07

标签: ios objective-c iphone

我正在iOS应用中实现一种方法,允许用户只通过WiFi下载内容或使用WiFi和3G网络从网络服务器下载内容,我的问题是如何制作可以打开和关闭下载内容的开关仅限WiFi或3G选项?就像苹果在iOS上的iTunes Store内容中使用它一样,所以如果用户只打开wifi选项,那么只能使用wifi网络下载内容。

我应该使用Reachability类还是别的什么?

2 个答案:

答案 0 :(得分:3)

Reachability类可以帮助您解决此问题。根据您的连接需要对其进行初始化,例如:

Reachability *reachability = [Reachability reachabilityWithHostName:@"www.google.com"];

您现在可以查询'currentReachabilityStatus'属性以确定您是否已连接,以及WiFi是否可用。

NetworkStatus status = reachability.currentReachabilityStatus;
switch(status)
{
    case ReachableViaWiFi:
        // There's a wifi connection, go ahead and download
        break;
    case ReachableViaWWAN:
        // There's only a cell connection, so you may or may not want to download
        break;
    case NotReachable:
        // No connection at all! Bad signal, or perhaps airplane mode?
        break;
}

当然,您可以在应用程序中正确处理状态。

答案 1 :(得分:0)

此外,您可以更改URLSessionConfiguration's属性 var allowsCellularAccess: Bool

该属性设置为false,不允许会话通过蜂窝网络加载数据

check more here