iOS 定位服务的权限与规则——WWDC2019学习总结

Posted 追到梦的魔术师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 定位服务的权限与规则——WWDC2019学习总结相关的知识,希望对你有一定的参考价值。

一、Core Location

Core Location是ios系统级别定位服务框架,iOS所有定位服务相关功能都与它相关

工作原理简介:

遍历过所有APP之后一段时间,系统会将event自动清除

二、权限升级弹框策略

我们都知道,在需要获取用户位置时,会先弹出提示框获得权限,再根据 API 去获取所在位置。但在 iOS 13 中,提示框内容与以往不同。

会发现,iOS13时,即使App开始的时候就申请“始终允许”权限,但是弹框中并不会出现该选项,原因是iOS13 之后,iOS加入“升级权限弹框”策略,“始终允许”询问被被推迟。

在这种情况下,App首次从,那么系统将会展示一个提示框给用户,如图:

对于这种权限升级操作,App内部是无感知的,也就是说在升级权限弹框弹出来之前,App内部拿到的权限状态是“始终允许”,直到升级弹框弹出之后,若用户拒绝升级,则App内部获取的权限状态才会发生变化。升级权限弹框只会弹出一次!下图标识用户操作与App内部获取状态,此时的Always状态实际上是临时状态,文章后面会讲到。

三、iOS13中使用时允许变得更加强大

在 iOS 12中,Always 可以接收定位、获取信标范围、在后台继续定位、在后台开启定位、监控位置变化、使用区域监控和访问监控。而 WhenInUse 只有前三者的功能。

在 iOS 13中,Always 不论 App 是否处于in use,均可以使用 Core Location 的所有 API 。而 WhenInUse 只有在 App in use时才可以使用 API

注意:对于Always权限来说,无论App是否处于InUse状态(无论App是否被杀掉进程),Core Location 的event都会被该App接收到。也就是说在App被杀死的情况下,仍然可以获取用户的地理位置并且做一些操作。

四、什么情况属于in use?

默认情况:

开启后台定位更新后(App在后台,仍然处于in use状态,若用户不手动杀死进程,App会一直处于in use状态,不包括被杀掉进程的情况):

如何开启后台定位更新?

1、BackgroundMode设置中勾选Location updates

2、CLLocationManager 中 allowsBackgroundLocationUpdates设置成true,默认false

五、新增临时授权

ios 12中,开始的时候是未定义notDetermined,当App发起权限请求的时候,便会出现权限弹框,用户选择后权限便被确定。当然,开始的时候请求了WhenInUse状态后,如果需要,可以再次请求Always权限,询问用户是否更新状态

iOS13出现.authorizedAlways 和 .authorizedWhenInUse 两种临时状态。

1、authorizedAlways 临时状态是App在最开始就申请Always权限,因为iOS13权限升级弹框策略,所以在用户点击升级弹框之前,虽然App内部获取到的是Always状态,但是属于authorizedAlways 临时状态。只有用户在升级权限弹框中做出明确选择,authorizedAlways 临时状态才会被转化为authorizedAlways状态或authorizedWhenInUse状态。

2、authorizedWhenInUse临时状态是因为iOS13引入新的授权项->Allow Once而增加的状态。当用户选择Allow Once授权时,在本次In Use期间,授权状态都是authorizedWhenInUse临时状态,直到App的in Use状态结束,授权状态才会从authorizedWhenInUse临时状态转化为notDetermined未定义状态,此时再次进入In Use状态时,定位权限弹框会再次弹出。

参考资料:
WWDC 2019 Session 705

以上是关于iOS 定位服务的权限与规则——WWDC2019学习总结的主要内容,如果未能解决你的问题,请参考以下文章

iOS 13 检查 CLLocationManager 的临时授权状态

云原生 | 从零开始学istio二Istio核心特性与架构

WWDC2019 Sessions 观后感集合

核心数据和 cloudkit 同步 wwdc 2019 不适用于 beta 3

WWDC2020 苹果开发者大会日期确定,iOS14 要来了!

WWDC2019 SessionXcode 11新特性