iOS App不彈框詢問「是否允許應用訪問數據」的問題
- 2020 年 3 月 12 日
- 筆記
問題及解決過程
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、添加程式碼模擬一次網路請求:
// 模擬網路請求,以彈窗提示是否使用網路數據 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];