當我的應用程序啓動時,它請求使用位置服務。位置本地設置應用程序啓用的服務
如果用戶選擇'不允許',我會再次提示他們知道定位服務是最佳體驗所必需的,他們可以在設置應用程序中啓用。
如果用戶不允許並且仍然創建一個帳戶,那麼在沒有位置功能部件的情況下,主屏幕將無法正常工作。
從這一點,如果我手動啓用設置應用程序,我仍然沒有得到主頁來獲取當前位置。
如何檢測位置服務是否已從設置應用程序啓用?
是否有我需要從AppDelegate再次強制執行的方法?
當我的應用程序啓動時,它請求使用位置服務。位置本地設置應用程序啓用的服務
如果用戶選擇'不允許',我會再次提示他們知道定位服務是最佳體驗所必需的,他們可以在設置應用程序中啓用。
如果用戶不允許並且仍然創建一個帳戶,那麼在沒有位置功能部件的情況下,主屏幕將無法正常工作。
從這一點,如果我手動啓用設置應用程序,我仍然沒有得到主頁來獲取當前位置。
如何檢測位置服務是否已從設置應用程序啓用?
是否有我需要從AppDelegate再次強制執行的方法?
您可以使用CLLocationManager.AuthorizationStatus判斷您的應用程序是否已啓用位置,該位置將返回CLAuthorizationStatus枚舉的成員。如果位置完全禁用,您的應用將無法獲得授權,因此您知道您需要知道的一切。
let authorization = CLLocationManager.authorizationStatus()
if authorization == .AuthorizedWhenInUse || authorization == .Authorized {
...
}
如果您在使用CLLocationManager請求授權和用戶拒絕它,你可以不會導致再次出現的窗口。
從用戶體驗的角度來看,還要小心嘮叨。清楚地表明您的應用可以從使用位置獲益,但可以儘量避免對用戶造成威脅。
另請參閱how to determine when settings change on ios讓用戶(希望)啓用後,您的應用可以重試位置權限。