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];