iOS10国行网络权限问题

本文讨论了iOS10针对国行设备新增的无线和蜂窝访问权限管理,以及如何处理用户首次安装应用时的网络权限选择。在没有苹果API的情况下,开发者通过检测网络状态和SSID信息来判断网络可用性和权限设置,以确保应用的正常网络连接。
摘要由CSDN通过智能技术生成

以前iOS9上只有蜂窝访问权限,不过默认都是允许访问,可以自行去设置里面关闭。

而iOS10针对国行手机多了一个无线和蜂窝访问权限的选择。许多应用在第一次安装的时候会自动弹出一个alertview询问用户是否允许应用使用包括无线和蜂窝的数据。但也有部分是不会弹出的(iOS10系统bug,解决办法可自行百度)。注意这个弹窗只会在该手机第一个安装该应用的时候才会弹出,卸载重装也不会弹,类似keychain机制。

所以为了防止用户在第一次弹窗的时候点了不允许而后面不能正常连接网络的情况,做出了相应的处理。(由于苹果并没有给出相应的api,无法获知用户在第一次是否点了允许还是不允许,所以通过间接的方式去判断,有误判,不过都是极少情况的概率出现)

所有因为我们应用有引导页,所以在引导处自己写了一个请求百度HEAD的方法(为了去弹出系统网络弹窗,如果没有请求不会弹出,写HEAD请求也是为了节省流量)。然后在过渡到登陆页面的时候用AF去判断当前的网络状态,如果是AFNetworkReachabilityStatusNotReachable,即表示当前网络不可用。

然后在对此情况做出两种判断:

wifi:

- (NSDictionary *)fetchSSIDInfo {

    NSArray *ifs = (__bridge_transfer NSArray *)CNCopySupportedInterfaces();

    if (!ifs) {

        return nil;

    }


    NSDictionary *info = nil;

    for (NSString *ifnam in ifs) {

        info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if (info && [info count]) { break; }

    }

    return info;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值