新機首次安裝 app,請求網路許可權“是否允許使用資料”,點允許後,首頁資料為空
現在發現一個問題,在iOS10以上中,當app在手機第一次安裝的時候,蘋果會預設彈出一個是否允許app使用資料的彈框,允許後首頁一片空白,之前做那個app沒在關注過這一次,因為首頁有下拉重新整理這個功能,並且這個問題是這個裝置第一次安裝才出現,也沒太關注過這個問題,現在開發新的app,首頁沒有下拉重新整理,第一次安裝就直接空白。
查看了一些資料說是由於咱大陸相關部門出臺的新規定指出,應用在未經使用者允許的前提下,系統不能授予其使用聯網、獲取定位功能,iphone在iOS10作業系統中加入了關於應用使用資料的授權彈框提示,使用者在iOS10以上系統中第一次開啟應用時,會被要求對於是否授予應用聯網許可權進行選擇。
這種現象在解除安裝後,再重新裝,也不會出現這種現象,問題只會出現在這臺裝置第一次安裝、第一次啟動的情況下,如果把手機抹掉、重置,問題還能重現。
解決思路是
1.先判斷這個裝置是否是第一次安裝這個app,可以通過keychain方式來儲存資料來判斷,因為這種方式儲存的資訊不會因為因app被刪除而丟失。
2.可以通過MyReachability第三方庫來監聽網路的變化,如果監測到有網並且該裝置是第一次安裝就重新獲取首頁資料。
程式碼
- (void)writeUUID
{
if ([KeyChainHelperload:@"private"] == nil) {
//
[KeyChainHelpersave:@"private"data:[[NSUUIDUUID] UUIDString]];
}
}
- (void)checkNetworkStatus:(NSNotification *)notifi
{
MyReachability *NetReachable = notifi.object;
NetworkStatus NetStatus = [NetReachable currentReachabilityStatus];
//由於首次安裝 app,會彈出請求網路許可權“是否允許使用資料” 允許之前沒網
if (NetStatus != NotReachable && [KeyChainHelperload:@"private"] == nil) {
[[NSNotificationCenterdefaultCenter] postNotificationName:DOWNLOADHOMEDATAobject:nil];
[selfgetSdWhiteList];
[selfwriteUUID];
}
[[NSUserDefaultsstandardUserDefaults] synchronize];
}