我正在 iOS 应用程序中实现一种方法,该方法允许用户仅通过 WiFi 下载内容或同时使用 WiFi 和 3G 网络从 Web 服务器下载内容,我的问题是如何制作可以打开和关闭以下载 WiFi 或 3G 的开关唯一的选择?就像苹果将它用于 iOS 上的 iTunes Store 内容一样,因此如果用户打开仅 wifi 选项,则内容将仅使用 wifi 网络下载。
我应该使用可达性类还是其他东西?
我正在 iOS 应用程序中实现一种方法,该方法允许用户仅通过 WiFi 下载内容或同时使用 WiFi 和 3G 网络从 Web 服务器下载内容,我的问题是如何制作可以打开和关闭以下载 WiFi 或 3G 的开关唯一的选择?就像苹果将它用于 iOS 上的 iTunes Store 内容一样,因此如果用户打开仅 wifi 选项,则内容将仅使用 wifi 网络下载。
我应该使用可达性类还是其他东西?
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;
}
当然,您可以在应用程序中正确处理状态。