1. 程式人生 > >[iOS] “是否允許“xxx”使用數據”,在iOS10之後,首次安裝App會彈框讓用戶授權,問題解決方案。

[iOS] “是否允許“xxx”使用數據”,在iOS10之後,首次安裝App會彈框讓用戶授權,問題解決方案。

log 引導圖 決定 問題 應對 mil ima 移動 bsp

一、為什麽會彈 “是否允許使用數據”?

  因為按照我們天朝的工信部要求,用戶再使用應用的過程中,如果要使用移動數據必須要用戶授權,其實這是好事,是為了保護用戶的流量或者話費不會無端的被扣除。所以蘋果在 iOS10 之後,在首次安裝應用時會彈 “是否允許使用數據”,然而只是在國行手機上才會彈,所以這也是為什麽只是部分用戶反饋會彈。而且這個彈框只會彈一次,即使卸載再安裝也不會再彈,除非把手機系統重置。所以為了解決這個問題,我們技術的同學反復犧牲手機重置來測試這個問題。有可能導致的問題:1.首頁空白;2.如果啟動時需要請求配置信息,會導致拿不到相應的配置信息。總歸就是授權前所有請求都是失敗的。

技術分享

二、彈 “是否允許使用數據” 會導致什麽問題?

  由於不授權,也就是用戶在點“允許”之前,網絡請求全都是失敗的,而點了“允許”之後,網絡請求才能正常進行,這樣就會導致一個問題:在應用啟動還沒來得及彈網絡授權框的時候,我們已經進行了數據請求,這個時候主要請求一些應用的配置信息或者是和後臺約定的一些數據、Token 等;還有可能已經請求了首頁的數據。所以在沒授權之前這些請求都是失敗的。可能蘋果也是暫時應對工信部的一個策略,處理的比較倉促,所以並沒有提供類似相冊、相機授權相關的API,這樣就比較頭疼了,但是問題總歸是有應對的辦法。

三、解決方案

  在這裏我先介紹下我的解決方案:一般我們的應用在第一次啟動的時候都會有特性圖有人叫引導圖(就是需要滑動的那幾張圖),好在顯示特性圖的時候,網絡授權彈框就已經彈出來了,而且必須用戶點了“允許”或者“不允許”之後才能滑動特性圖,如果用戶點了“不允許”,網絡請求將會一直失敗,不過這是用戶的決定與我們就無關了。當用戶點了“允許”,再滑動特性圖,這個時候請求就是正常的了,所以我的處理辦法是之前啟動的邏輯不變,以免可能會影響到用戶體驗,只是在用戶滑到最後一張圖片的時候重新請求需要請求的接口,這樣就解決了首次啟動應用首頁空白等一系列問題;但是這樣對於非國行手機就有個小問題:啟動時請求的哪些接口會重復一次,不過這也不是大問題,總比第一次首頁空白要好的多吧,而且這對於用戶是無感知的。當然如果不想重復請求,可以把請求都放在滑完特性圖之後,但是記得一定要分情況,因為第二次啟動就不彈特性圖了。當然還有其他的一些解決方案:1.啟動不做處理當進入首頁,放一個加載失敗的按鈕,如果失敗用戶會點擊按鈕,這個時候再去重新請求。2.還有人提出可以監聽網絡框架請求失敗時,定時重新請求的處理,應該也能解決首次請求失敗的問題。具體怎麽解決各個應用有不同情況,需要根據實際情況去處理。

[iOS] “是否允許“xxx”使用數據”,在iOS10之後,首次安裝App會彈框讓用戶授權,問題解決方案。