Cocoa框架-Core Location

本文介绍了iOS中Core Location框架的使用,包括位置信息授权、服务检查、位置请求、解析使用和重大变更通知的步骤。Core Location用于获取设备的位置、运动朝向等信息,涉及授权策略如Always和While Using。开发者需要导入框架,配置.plist文件,并通过CLLocationManager实例获取位置信息,处理位置更新和错误。
摘要由CSDN通过智能技术生成

1. 简介

Core Location 是用于帮助设备确定当前的位置、运动朝向及基于位置的距离、速度、方向等信息的 iOS 框架。参考《精通iOS框架》做了简单的总结。

2. 使用步骤

应用显示位置经过下面几个简单的步骤:

(1)位置信息授权

1.首先,在应用中使用 Core Location 框架,需要导入 Core Location,使用指令:“import”:

@import CoreLocation;

2.然后在 .plist 文件中添加一个条目,用于说明程序将会使用用户位置信息。使用到2个相关的关键字:NSLocationWhenUseUsageDescriptionNSLocationAlwaysUsageDescription 。若没有找到授权类型关键字,就不会调用该请求所允许的对话框。

Core Location 的访问服务策略有:
Always, While Using 或 Never 三种,分别对应的是允许访问设备的位置信息的三种类型。

  • Always
    表示即使在程序未激活时,用户也允许相应的程序访问位置信息。
  • While Using
    表示仅在应用处于前台且是激活状态时,允许访问设备的位置信息。
  • Never
    表示不允许访问设备的位置信息。
    前面二者使用 CLLocationManager 类,调用的函数分别为:
//1. Always:
requestAlwaysAuthorization
//2. When in use
requestWhenInUseAuthorization
  • requestAlwaysAuthorization
    按照苹果 API 的说法:
    仅在必须后台启动位置服务时,才调用requestAlwaysAuthorization。按照苹果的隐私策略和用户对电池损耗的顾虑,必要情况下才使用此函数。 因为开启后,应用即使被手动关闭,在位置监控服务检测到位置变化等改变时,服务仍将重启。在应用处于后台时,iOS 将显示一个提示框,告知正在使用位置服务的 App 的信息。

*Calling this method will trigger a prompt to request “always”
* authorization from the user. If received, “always” authorization grants access to the user’s
* location via any CLLocationManager API, and grants access to
* launch-capable monitoring API such as geofencing/region monitoring,
* significante location visits, etc. Even if killed by the user, launch
* events triggered by monitored regions or visit patterns will cause a
* relaunch.
*
* “Always” authorization presents a significant risk to user privacy, and
* as such requesting it is discouraged unless background launch behavior
* is genuinely required. Do not call +requestAlwaysAuthorization unless
* you think users will thank you for doing so.

警告提示框
此图片来源于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值