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

以上是我實驗出來的情況,如有疑惑或異議,請留言,謝謝!