2

我正在 iOS 应用程序中实现一种方法,该方法允许用户仅通过 WiFi 下载内容或同时使用 WiFi 和 3G 网络从 Web 服务器下载内容,我的问题是如何制作可以打开和关闭以下载 WiFi 或 3G 的开关唯一的选择?就像苹果将它用于 iOS 上的 iTunes Store 内容一样,因此如果用户打开仅 wifi 选项,则内容将仅使用 wifi 网络下载。

我应该使用可达性类还是其他东西?

4

2 回答 2

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;
}

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

于 2012-09-21T21:39:36.757 回答
1

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

该属性变为假,不允许会话通过蜂窝加载数据

在这里查看更多

于 2018-09-19T15:34:12.150 回答