iOS开发_性能优化ios成长之路iOS开发资料收集区

在iOS10中,新机首次安装 app,请求网络权限“是否允许使用

2017-01-17  本文已影响3730人  slowdony

最近在开发中遇到一个问题,就是在iOS10 中当app在手机第一次安装时,苹果会默认弹出一个是否允许app使用数据?的弹出框


hatIMG1.jpeg

当手机点击允许时,会发现首页的数据访问不到,会出现空白界面.这个问题只有在国航的苹果手机并且在iOS10 以上的机型里会出现.

查了相关文章知道由于大陆相关部门出台的新规定指出,应用在未经用户允许的前提下,系统不能授予其使用联网、获取定位的功能。Apple 在 iOS 10操作系统中加入了关于应用使用数据的授权弹窗提示,用户在 iOS 10 系统中第一次打开应用时,会被要求对于是否授予应用联网权限进行选择。

空白界面无非就是网络请求出现了没有请求数据,或者请求到数据没有刷新界面,可能原因是由于app的访问数据请求步骤发生在弹出框之前,所以当弹出框出来后,app访问数据已经操作,但由于用户还没有点击允许访问数据,导致无法操作网络数据请求,所以导致空白界面.

解决思路通过AFN监听网络状态,判断手机是否可以访问数据,如果可以再进行数据请求,这样就会在弹出框后使app访问到数据.就不会出现空白界面了

其次你也可以通过添加新特性图片轮播图,当第一次使用是app会出现新特性界面,会是首页数据访问发生在弹出框之后,

 //监听网络
    AFNetworkReachabilityManager *netManager = [AFNetworkReachabilityManager sharedManager];
    [netManager startMonitoring];  //开始监听
    [netManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){
        
        if (status == AFNetworkReachabilityStatusNotReachable)
        {
            //showAlert
//            [EPProgressHUD showErrorWithStatus:@"网络链接错误,请检查网络链接"];
            
            return;
        }else if (status == AFNetworkReachabilityStatusUnknown){
            
            DLog(@"未知网络");
            [EPProgressHUD showErrorWithStatus:@"未知网络"];
            
        }else if ((status == AFNetworkReachabilityStatusReachableViaWWAN)||(status == AFNetworkReachabilityStatusReachableViaWiFi)){
            
            DLog(@"WiFi");
             [self set_NetWork];
            
        }
        
    }];

参考文章:这篇文章
我的微博:slowdony

上一篇下一篇

猜你喜欢

热点阅读