版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.11.25 |
前言
很多的app都有定位功能,比如說滴滴,美團等,他們都需要獲取客戶所在的位置,并且根據位置推送不同的模塊數據以及服務,可以說,定位方便了我們的生活,接下來這幾篇我們就說一下定位框架
CoreLocation
。感興趣的可以看我寫的上面幾篇。
1. CoreLocation框架詳細解析 —— 基本概覽(一)
選擇定位服務的授權級別
您請求的授權類型(“when-in-use”
或“always”
)決定應用程序可以訪問哪個位置以及何時可以使用它們:
1. When-in-use authorization
您的應用可以使用大多數服務,但不能使用自動重新啟動應用的服務。 您的應用必須始終在前臺運行時啟動服務。 如果您為應用啟用后臺定位功能,則會在后臺喚醒已暫停的應用以處理定位事件。 但是,如果您的應用程序未運行,則不會啟動。
2. Always authorization
您的應用可以使用所有位置服務,并且可以從前臺或后臺啟動這些服務。 如果您的應用程序未運行時發生與位置相關的事件,系統將啟動您的應用程序并發送該事件。
建議您只要在可能的情況下請求When-in-use authorization
授權。 如果您的應用程序請求并接收When-in-use authorization
授權,則可以稍后為總是授權提出單獨的請求。 (應用程序只能請求一次授權。)即使您請求Always authorization
,用戶也可以選擇進行When-in-use authorization
授權。 因此,您必須隨時準備When-in-use authorization
授權。
重要提示:始終在您實際計劃使用位置服務的位置請求授權以執行任務。 請求授權可能會向用戶顯示警報。 如果用戶不清楚為什么您的應用正在使用位置服務,則用戶可能會拒絕您的請求。
表1列出了可用于每種授權的位置服務。
在發出授權請求之后,在請求解決之前啟動位置服務是安全的。 但是,在授權狀態更改為kCLAuthorizationStatusAuthorizedAlways
或kCLAuthorizationStatusAuthorizedWhenInUse
之前,位置服務不會傳遞任何數據。 在您的location manager
代理中實施locationManager:didChangeAuthorizationStatus:
方法,以在您的應用程序的授權狀態更改時得到通知。
Requesting Authorization - 請求授權
-
Requesting When-In-Use Authorization
- 僅當您的應用程序正在運行時請求授權才能使用位置服務。
-
Request Always Authorization
- 隨時請求授權使用位置服務。
后記
未完,待續~~~