我正在iOS应用中实现一种方法,允许用户只通过WiFi下载内容或使用WiFi和3G网络从网络服务器下载内容,我的问题是如何制作可以打开和关闭下载内容的开关仅限WiFi或3G选项?就像苹果在iOS上的iTunes Store内容中使用它一样,所以如果用户只打开wifi选项,那么只能使用wifi网络下载内容。
我应该使用Reachability类还是别的什么?
答案 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,不允许会话通过蜂窝网络加载数据