uni | 您所在的位置:网站首页 › iphone的蜂窝移动网络打开是空白 › uni |
iOS 10之后首次安装App只要请求网络都会有这个提示。 ![]() 图片1.png 由于uni-app首页是动态化的,通过接口请求返回数据布局,如果停留几秒在点击无线局域网与蜂窝网络后,但是由于没有授权,所以接口无数据返回。所以出现了白屏。期初以为是uni的锅,后来调研后发现是iOS之后所有App都有这样的问题。 AndroidAndroid首次网络请求,点击允许后才会往后面执行,所以Android并没有这个问。 iOSios 没有任何操作也会往后面执行,所以在没有授权网络的情况下是没有数据返回的。那么就针对iOS容错处理。 容错处理方式1首次iOS写一个原生插件给uni 代码语言:javascript复制#import //获取网络权限 - (void)checkNetworkPermissions{ CTCellularData *cellularData = [[CTCellularData alloc] init]; // 状态发生变化时调用 cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState restrictedState) { switch (restrictedState) { case kCTCellularDataRestrictedStateUnknown: NSLog(@"蜂窝移动网络状态:未知"); break; case kCTCellularDataRestricted: NSLog(@"蜂窝移动网络状态:关闭"); break; case kCTCellularDataNotRestricted: NSLog(@"蜂窝移动网络状态:开启"); break; default: break; } }; }uni端轮询来获取权限,如果获取网络权限为开启的状态那么就网络请求刷新页面。如果轮询假设5次之后还是没有权限,此时可能用户点击了不允许。所以轮询5次后还是没有权限就提示用户进行网络设置,这些就iOS提供原生插件给uni调用就可以了。 代码语言:javascript复制[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:^(BOOL success) { }];容错处理方式2进入首页什么都不做,只要网络请求没有数据返回就显示无网络的式样,加一个按钮,让用户自己做刷新操作。操作的时候在判断权限,如果用户能点击按钮。那说明要么用户允许网络了。要么用户点击不允许。所以 此时在判断一下网络权限。如果有权限请求刷新。没有权限提示做设置。 |
CopyRight 2018-2019 实验室设备网 版权所有 |