版本记录
版本号 | 时间 |
---|---|
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
- 随时请求授权使用位置服务。
后记
未完,待续~~~