iOS 网络权限管理

iOS 网络权限管理

网络权限管理

一、iOS网络情况分类:

通过App应用设置网络使用权限(关闭、WLAN、WLAN与蜂窝移动网)直接设置手机网络情况(飞行模式、无线局域网络、蜂窝移动网络)二、iOS开发使用到的网络判断类:

AFNetworkReachability或者Reachability来判断网络的可达性,这两个类可以判断网络是否可达,以及可达时网络的类型(WLAN还是蜂窝移动网络);

CTCellularData来判断网络数据是否受限,只有应用网络权限设置为WLAN与蜂窝移动网时,网络数据才会返回不受限;

三、组合关系:

权限飞行模式/关闭网络局域网蜂窝移动网络关闭不可达-数据受限不可达-数据受限不可达-数据受限WLAN不可达-数据受限WLAN-数据受限不可达-数据受限WLAN和蜂窝移动网不可达-数据受限WLAN-数据不受限WLAN-数据不受限注:关闭网络,及关闭无线局域网和蜂窝移动网络。

四、特殊说明:

第一次安装应用(之前从未安装过),第一次启动App时,会提示选择网络,选择之后就不会提示选择网络;但有时第一次安装时不出现选择网络,需要在设置中修改任意一个应用的网络权限,然后重启App,就会提示网络(目前没有找到不出现选择网络的原因);

当网络由可达状态切换到不可达状态后,第一进入App时,系统会提示一次网络权限改变的提示;

修改网络权限时,App不会重启,这个地方与相册授权不同。相册、相机、麦克风等修改权限后返回时,App会重新启动。

五、代码:

CTCellularData *cellularData = [[CTCellularData alloc] init];

cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state) {

//获取联网权限状态

switch (state) {

case kCTCellularDataRestricted:

NSLog(@"Restricrted");

break;

case kCTCellularDataNotRestricted:

NSLog(@"Not Restricted");

break;

//未知,第一次请求

case kCTCellularDataRestrictedStateUnknown:

NSLog(@"Unknown");

break;

default:

break;

};

};

AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

//获取联网可达状态

switch (status) {

case AFNetworkReachabilityStatusUnknown:

NSLog(@"NetworkingTypeUnknown");

break;

case AFNetworkReachabilityStatusNotReachable:

NSLog(@"NetworkingTypeNotReachable");

break;

case AFNetworkReachabilityStatusReachableViaWWAN:

NSLog(@"NetworkingTypeReachableViaWWAN");

break;

case AFNetworkReachabilityStatusReachableViaWiFi:

NSLog(@"NetworkingTypeReachableViaWiFi");

break;

default:

NSLog(@"NetworkingTypeUnknown");

break;

}

转载链接:https://www.jianshu.com/p/2d3ef8b72986

相关文章

三国志13总有人下野,武将招揽需谨慎
beat365体育亚洲网址

三国志13总有人下野,武将招揽需谨慎

🌱 10-13 💬 748
项目管理如何算工作量
旧版彩票365下载

项目管理如何算工作量

🌱 10-16 💬 213