最近在开发中遇到一个问题,就是在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];
}
}];
网友评论