一、问题描述
在iOS 10下 ,首次进入应用时,会有询问是否允许网络连接权限的的弹窗,为更好进行用户交互,需要在打开应用时获取应用禁用网络权限状态(状态分为:未知、限制网络、未限制网络),客户端根据不同的权限状态定制相应的人机交互。
二、问题调研
针对请求应用网络权限可能存在的几种情形,操作与对应的状态都是笔者测试得到的,具体如下所示:
可能操作 | 关闭 | 无线局域网 | 无线局域网&蜂窝 | 不进行操作 | 锁屏 | 解锁 | 按Home键 |
---|---|---|---|---|---|---|---|
权限状态 | Restricted | NotRestricted | NotRestricted | Unknown | Unknown | 恢复原始状态 | 保持原有状态 |
当联网权限的状态发生改变时,会在上述方法中捕捉到改变后的状态,可根据更新后的状态执行相应的操作。
1234 | CTCellularData *cellularData = [[CTCellularData alloc]init];cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state){//状态改变时进行相关操作}; |
---|
当查询应用联网权限时可以使用下面的方法:
123456789101112131415 | CTCellularData *cellularData = [[CTCellularData alloc]init];CTCellularDataRestrictedState state = cellularData.restrictedState;switch (state) {case kCTCellularDataRestricted:NSLog(@"Restricrted");break;case kCTCellularDataNotRestricted:NSLog(@"Not Restricted");break;case kCTCellularDataRestrictedStateUnknown:NSLog(@"Unknown");break;default:break;} |
---|
CoreTelephony.framework
iOS7之前还是私有框架,框架内部提供还是私有API,但在iOS7之后该框架就成为公开的框架,大家可以尽情的使用了。
写这篇博客一方面是为了弥补前些日子写的博客iOS开发中的这些权限,你搞懂了吗?(文章链接:https://123sunxiaolin.github.io/2016/08/27/iOS开发中的这些权限,你搞懂了吗?/#more)中的不足之处,另一方面是为了解决部分读者的疑惑,希望读者大人们多多支持!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有