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

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

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

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

问题

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

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

解决办法

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

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

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

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

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

备注

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

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

转载于:https://www.cnblogs.com/Free-Thinker/p/8303825.html

你可能感兴趣的文章
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
LinearLayout里面的空间居中对齐
查看>>
5A.炫酷双截棍(C++)
查看>>
ADC取样
查看>>
用户界面分面注意事项
查看>>
POJ 2151 概率DP
查看>>
【C/C++开发】C++编译指令#pragma pack的配对使用
查看>>
苹果iPhone 5C和5S发布后,消费者如何选择?
查看>>
map遍历的三种基础用法
查看>>
bzoj2427: [HAOI2010]软件安装
查看>>
mac快速正确的安装 Ruby, Rails 运行环境
查看>>
cat
查看>>
进程篇
查看>>
深恶痛绝重写setter和getter
查看>>
MySQL via EF6 的试用报告
查看>>
ASP.NET本质论第一章网站应用程序学习笔记3-对象化的Http
查看>>
c++虚函数与重载
查看>>