2014-11-08 120 views
0

當我的應用程序啓動時,它請求使用位置服務。位置本地設置應用程序啓用的服務

如果用戶選擇'不允許',我會再次提示他們知道定位服務是最佳體驗所必需的,他們可以在設置應用程序中啓用。

如果用戶不允許並且仍然創建一個帳戶,那麼在沒有位置功能部件的情況下,主屏幕將無法正常工作。

從這一點,如果我手動啓用設置應用程序,我仍然沒有得到主頁來獲取當前位置。

如何檢測位置服務是否已從設置應用程序啓用?

是否有我需要從AppDelegate再次強制執行的方法?

回答

0

您可以使用CLLocationManager.AuthorizationStatus判斷您的應用程序是否已啓用位置,該位置將返回CLAuthorizationStatus枚舉的成員。如果位置完全禁用,您的應用將無法獲得授權,因此您知道您需要知道的一切。

let authorization = CLLocationManager.authorizationStatus() 
if authorization == .AuthorizedWhenInUse || authorization == .Authorized { 
    ... 
} 

如果您在使用CLLocationManager請求授權和用戶拒絕它,你可以不會導致再次出現的窗口。

從用戶體驗的角度來看,還要小心嘮叨。清楚地表明您的應用可以從使用位置獲益,但可以儘量避免對用戶造成威脅。

相關問題