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

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