- iOS7以前
系統(tǒng)配置之后出現(xiàn):永不、始終 選項(xiàng) - iOS8-10
系統(tǒng)配置之后出現(xiàn):永不、始終 選項(xiàng)
通過(guò)配置 NSLocationWhenInUseUsageDescription 可出現(xiàn) 使用應(yīng)用期間 選項(xiàng) - iOS11+
不用配置NSLocationAlwaysUsageDescription,就會(huì)出現(xiàn)永不、始終、使用應(yīng)用期間 選項(xiàng) - iOS13
1.增加 允許一次 選項(xiàng)
用戶選擇 Allow Once
iOS 13 提出了 Temporary authorization 的概念。當(dāng)用戶選擇 Allow Once 后,我們的 App 就獲得了 Temporary authorization ,也就是臨時(shí)權(quán)限。該權(quán)限有以下特點(diǎn):
1.實(shí)際的權(quán)限類型是:WhenInUse; - App 重啟后,定位權(quán)限會(huì)重新變成 NotDetermined,下次開(kāi)啟定位時(shí)再申請(qǐng)定位權(quán)限會(huì)重新彈框讓用戶確認(rèn);
2.在 iOS 13 系統(tǒng),申請(qǐng) WhenInUse 或 Always 權(quán)限時(shí),系統(tǒng)都會(huì)先彈出來(lái)下面的彈框讓用戶選擇:
"使用app時(shí)允許、允許一次、不允許"
用戶選擇 Allow While In Use
如果用戶選擇 Allow While In Use ,我們的 App 會(huì)獲得 WhenInUse 權(quán)限。
如果之前申請(qǐng)的是 WhenInUse 權(quán)限,那么就跟 iOS 13 之前版本的系統(tǒng)表現(xiàn)沒(méi)什么區(qū)別;
系統(tǒng)會(huì)在某個(gè)時(shí)間再?gòu)棾鲆粋€(gè)彈框詢問(wèn)用戶是繼續(xù)給我們的 App WhenInUse 權(quán)限,還是切換成 Always 權(quán)限,iOS 13 中,沒(méi)法直接向用戶要 Always 權(quán)限了,必須要經(jīng)過(guò)一個(gè)二次確認(rèn)。
備注:系統(tǒng)確認(rèn)彈窗彈出時(shí),為打斷狀態(tài)(UIApplicationStateInactive)。
參考資料:
http://www.itdecent.cn/p/39e6d61b256c
http://foogry.wang/2019/09/18/2019-09-18-ios-ding-wei-quan-xian-na-xie-shi/