问题及解决过程
1、一般情况下,App首次启动都会弹出一个询问用户“是否允许应用访问数据”的弹框;
2、偶尔的一次调用厂家的静态库,库里面需要访问服务器做一些操作,但是App死活就是不弹框提示网络访问请求,并且“设置“里面也没有设置该App访问网络的地方,设置首页、无线局域网和蜂窝移动网络三处都没有显示该App,也就是都不可设。
3、尝试了网上说的各种方法,什么重启手机、Info.plist添加App Transport Security Settings、打开无线局域网助理、修改其他App的网络访问权限等等,都不管用。
4、后来,我用NSURLSession写了一段网络请求代码,发现竟然弹框询问了。
总结:
App里面如果是使用了socket等底层方法进行网络通信,可能不会弹框,这时候就需要采用以下方法:
1、Info.plist,添加App Transport Security Settings,添加Allow Arbitrary Loads并设置为YES;
2、添加代码模拟一次网络请求:
代码语言:javascript复制// 模拟网络请求,以弹窗提示是否使用网络数据
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *sessionDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
}];
[sessionDataTask resume];