博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS10 国行iPhone联网权限问题处理
阅读量:6586 次
发布时间:2019-06-24

本文共 905 字,大约阅读时间需要 3 分钟。

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

询问用户”是否允许应用使用数据”

问题

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

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

解决办法

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

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

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

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

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

备注

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

作者:向着黑暗出发 链接:https://www.jianshu.com/p/4ad55f6878a0 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你可能感兴趣的文章
RocketMQ最佳实践
查看>>
Kafka最佳实践
查看>>
STAR法则
查看>>
Ubuntu 16.04 LTS 安装Mongodb 3.4
查看>>
10-JavaScript之DOM的事件操作
查看>>
[ZJb417]区间众数
查看>>
陶哲轩实分析习题8.5.12
查看>>
陶哲轩实分析 命题7.2.5 证明
查看>>
UIImageView02
查看>>
WebRTC开发者必备 | 《WebRTC1.0: 浏览器间实时通讯》中文版免费下载
查看>>
ASP.NET MVC 4 Ajax上传文件
查看>>
C#Contains方法的错误理解
查看>>
SQL Server JDBC 驱动中sqljdbc.jar和sqljdbc4.jar的区别
查看>>
软件的可移植性
查看>>
webpack打包项目时typescript报错The 'files' list in config file 'tsconfig.json' is empty.的解决方法...
查看>>
关于absolute 和 relative 定位的定义
查看>>
Robolectric结合Android Studio的使用
查看>>
c#控制台中如何实现回车键退出任意键继续
查看>>
历届试题 错误票据
查看>>
评论功能
查看>>