zoukankan      html  css  js  c++  java
  • iOS10 国行iPhone联网权限问题处理

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

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

    问题

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

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

    解决办法

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

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

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

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

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

    备注

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



    作者:向着黑暗出发
    链接:https://www.jianshu.com/p/4ad55f6878a0
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    数据库之主表、从表、主键、外键
    eclipse编写js代码没有提示
    思维导图xmind的使用方法
    整理一下Apache与Tomcat的关系
    全栈开发者,一个很好的自学编程网站
    svn文件被锁不能提交的解决办法
    在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题
    php安装redis扩展
    PHP点击按钮拷贝
    PHP文件下载
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/8303825.html
Copyright © 2011-2022 走看看