iOS10 国行iPhone联网权限问题处理

Posted brave-sailor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS10 国行iPhone联网权限问题处理相关的知识,希望对你有一定的参考价值。

ios10上安装新App, 第一次打开时会询问用户"是否允许应用使用数据"(仅针对国行且需要连接移动网络的设备), 如下图所示, 在用户点击允许之前, App是无法联网的, 这意味着所有网络请求都是失败的.

技术分享图片
询问用户”是否允许应用使用数据”

问题

这个问题导致的直接结果就是用户进入首页时是一片空白, 对用户来说很不友好. 当前不少App都没有针对这个问题进行处理, 需要用户手动刷新, 当然也有做得比较好的,比如加一个”查看解决方案”之类的按钮, 告诉用户为什么会出现这种问题以及解决办法.

但是作为开发者, 感觉不能忍, 虽然主要原因可能是这个功能出的太仓促以至于苹果没来得及提供对应的API, 但是我们还是应该尝试去解决一下.

解决办法

其实方法很简单, 使用AFNetworking就可以搞定.

大家都知道, AFN可以监测网络状况, 当第一次监测到网络是WiFi或移动网络时就说明用户授权成功了, 这时候发个通知让首页重新加载就可以了.(似不似, 就这么简单嘛)

至于这个是不是第一次, 可以用钥匙串存储记录一下(什么? 你觉得太麻烦?  当然你不记录也行, 只是每次启动都会请求两次也没什么大不了)

经测试, 用户未点击允许之前, AFN监测到网络的状态是AFNetworkReachabilityStatusNotReachable, 点击允许后(如果手机网络是通畅的), 要么是WiFi要么是移动网络, 所以这个方案是可行的. Demo在这, 戳我下载

有人说使用CoreTelephony框架的CTCellularData也是可以的, 大家可以自行测试.

备注

这个方案仅针对第一次安装App时.  如果用户是更新App, 那么第一次启动时由于钥匙串没有获取到相应信息会误以为是第一次安装, 所以会导致首页数据请求两次, 个人觉得影响不大, 因为只是这一次会请求两次嘛. 最后, 如果大家有更好的方案可以拿出来分享一下(*^__^*)



作者:向着黑暗出发
链接:https://www.jianshu.com/p/4ad55f6878a0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。






以上是关于iOS10 国行iPhone联网权限问题处理的主要内容,如果未能解决你的问题,请参考以下文章

iphone5 A1429国行IOS8.4.1 越狱 完美使用电信3G

请求在 iOS 11 中使用 iPhone 麦克风的权限时应用程序崩溃

国行iPhone X大降价,看看刘海版MacBook长啥样

ios弹出询问位置权限显示不停,直到我打开我的iPhone

iPhone 全新国行 报价单(X 现已开售 8 8P热销)随时刷新报价获取最新价格

历史新低 iPhone X国行256G不到9000元