? ? ? ?APP發(fā)布后,部分用戶反饋手機(jī)可以連上WiFi像捶,但是APP通信不上上陕,有的手機(jī)甚至在設(shè)置界面就找不到APP,證書中加入了網(wǎng)絡(luò)和WiFi服務(wù)拓春,工程TARGETS 的 Capabilities中的Network Extension 和wireless a'ccessory configuration 都打開了释簿,但是還是有這個問題。我以為每個APP應(yīng)該是在首次安裝的時候都會提示“是否允許連接無線數(shù)據(jù)”硼莽,到現(xiàn)在我才發(fā)現(xiàn)這真的只是我以為庶溶。。沉删。我的APP有好多在不同的iPhone上首次運行并沒有提示“是否允許連接無線數(shù)據(jù)”渐尿。
? ? ? ? ? 出現(xiàn)這個問題,還有一個隱藏的因素矾瑰,就是我的APP連接的WiFi不能上網(wǎng)砖茸,只能用來與控制卡發(fā)送和接收數(shù)據(jù)。
? ? ? ? 又一次 拿來一臺有問題的iPhone測試殴穴,發(fā)現(xiàn)把WiFi斷開凉夯,這個時候連接的是4G,再去打開其他軟件采幌,再回到APP劲够,就出現(xiàn)提示“是否允許連接無線數(shù)據(jù)”,然后我去下載了其他的軟件休傍,發(fā)現(xiàn)一個問題征绎,就是有的在首次打開時候就用到網(wǎng)絡(luò)的,肯定會提示磨取,有這個提示的話人柿,到設(shè)置界面也就顯示了APP這個情況就感覺有點思路了。忙厌。凫岖。就是在程序入口的時候檢測一下網(wǎng)絡(luò)權(quán)限,因為有的iPhone會在程序第一次運行的時候直接提示“是否允許使用無線數(shù)據(jù)”逢净,但是有的還不會提示哥放。沒有聯(lián)網(wǎng)權(quán)限的時候使用一下網(wǎng)絡(luò)歼指,這個時候可能就會有這個提示了。
? ? ? ?解決辦法:我在入口類里面先去檢測APP是否有網(wǎng)絡(luò)權(quán)限甥雕,檢測到有問題的iPhone確實是沒有聯(lián)網(wǎng)權(quán)限踩身,然后在在沒有聯(lián)網(wǎng)權(quán)限的時候去使用(連接)一下網(wǎng)絡(luò),這樣就解決了APP不會提示“是否允許連接無線數(shù)據(jù)”的問題社露。
代碼部分
1惰赋,檢測聯(lián)網(wǎng)權(quán)限
首先要導(dǎo)入 ??@import CoreTelephony;
- (void)checkNetwork{
? ? CTCellularData *cellularData = [[CTCellularData alloc]init];
? ? cellularData.cellularDataRestrictionDidUpdateNotifier =? ^(CTCellularDataRestrictedState state){
? ? ? ? BOOL _isRestricted = YES;
? ? ? ? //獲取聯(lián)網(wǎng)狀態(tài)
? ? ? ? switch (state) {
? ? ? ? ? ? case kCTCellularDataRestricted:
? ? ? ? ? ? ? ? NSLog(@"Restricted"); //拒絕
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case kCTCellularDataNotRestricted:
? ? ? ? ? ? ? ? _isRestricted = NO;
? ? ? ? ? ? ? ? NSLog(@"Not Restricted"); //允許
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case kCTCellularDataRestrictedStateUnknown:
? ? ? ? ? ? ? ? NSLog(@"Unknown"); //未知
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? };
? ? ? ? if (_isRestricted? == YES) {
? ? ? ? ? ? [self requestNetwork];
? ? ? ? }
? ? };
}
2,假設(shè)在程序沒有聯(lián)網(wǎng)權(quán)限的時候呵恢,去(使用網(wǎng)絡(luò))連接一下百度
- (void)requestNetwork{
? ? NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
? ? NSURLRequest *request = [NSURLRequest requestWithURL:url];
? ? [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
? ? }];
}