iOS中各种类型的位置权限的选项有什么区别


目前iOS开发中定位信息提示框中相关的提示语有4个设置项:

Privacy - Location Usage Description
Privacy - Location When In Use Usage Description
Privacy - Location Always Usage Description
Privacy - Location Always and When In Use Usage Description

首先说明以下测试分别在iOS12.3.1和iOS13.1.2环境下进行,下文中分别简称iOS12,iOS13。

首先说一下Privacy - Location Usage Description

这个选项目前没发现有什么作用,据前辈说是老版本系统获取定位权限用的。我试了一下如果不写这个对iOS 12.3.1之后的系统都没有影响。别的系统感兴趣的可以自己试一下,我的项目里本来留存在的,还是不删了。

然后再现阶段特别注重用户隐私保护的大环境下,使用率最高的应该就是只写Privacy - Location When In Use Usage Description,也就是只允许使用应用期间APP获取地理位置。

在这种情况下:
iOS12的提示框样式为:


Privacy - Location When In Use Usage Description iOS12 提示框

iOS12中设置菜单里的样式为:


Privacy - Location When In Use Usage Description iOS12 设置

iOS13的提示框样式为:


Privacy - Location When In Use Usage Description iOS13 提示框

iOS13中设置菜单里的样式为:


Privacy - Location When In Use Usage Description iOS13 设置

如果单写Privacy - Location Always Usage Description

在iOS13中,APP在首次启动时不会显示提示框,进入设置页面显示如下:


Privacy - Location Always Usage Description iOS13 首次进入设置

但是感觉这是个系统bug,如果点下永不,退出再次进入设置,就变成了下边这个样式:


Privacy - Location Always Usage Description iOS13 设置

iOS12中没有提示,并且没有位置设置了。。。


Privacy - Location Always Usage Description iOS12 设置

如果同时写Privacy - Location Always Usage DescriptionPrivacy - Location Always and When In Use Usage Description,或单写Privacy - Location Always and When In Use Usage Description情况一样。

如下所示:

在iOS12的情况下。没有提示框,并且设置页面没有位置设置。iOS13情况下也没有提示框,但是设置页面略有不同:


Privacy - Location Always Usage Description和Privacy - Location Always and When In Use Usage Description iOS13 设置

往下的测试有点崩,我放弃了。。。

但是还有一个结论:如果写了Privacy - Location Always and When In Use Usage Description设置项,提示框的提示语和设置页的提示语都是Privacy - Location Always and When In Use Usage Description所设置的文字。