概述
网络权限管理
一、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
最后
以上就是呆萌百褶裙为你收集整理的iOS 网络权限管理的全部内容,希望文章能够帮你解决iOS 网络权限管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复