美文网首页OC-开发案例收集
ios 关于后台定位的开启和关闭在plist中的设置

ios 关于后台定位的开启和关闭在plist中的设置

作者: 浅浅_e90e | 来源:发表于2020-12-02 15:38 被阅读0次

最近项目因为用不到后台定位功能,需要把后台定位关闭,只针对info.plist 列表里的几个关于定位的key和权限询问弹窗,以及设置里的定位权限做一下说明。

我用的Xcode版本是12.0。

常用的一共有3个key:

a. NSLocationWhenInUseUsageDescription(只在应用使用期间开启):只能用于应用在前台时需要获取用户位置的权限说明

b. NSLocationAlwaysUsageDescription(始终允许,前后台都开启):用于应用进入后台时需要获取位置权限说明

c. NSLocationAlwaysAndWhenInUseUsageDescription(始终允许,前后台都开启,iOS11新增的):用于应用进入后台时需要获取用户位置的权限说明

现在针对于不同手机系统版本做一下关联说明:

(1)在低于iOS11的系统版本手机上:

首先说明一下:设置-隐私-定位-应用的定位权限始终有三个选项(永不,始终,使用应用期间),其次,关于三个key的不同组合对于弹窗的影响如下:

a+b+c:应用刚安装时打开的位置权限弹窗如下:

a+b+c

a+b:应用刚安装时打开的位置权限弹窗如下:

a+b

在低版本系统的手机上,加不加c这个key的弹窗区别如上,可能不仔细看没看出有啥区别,但请仔细看大标题那行字,加了c后,是询问在用户在并未使用应用时访问位置,而不加c,弹窗的标题就变成询问用户在使用应用时访问位置,差两个字,区别就大多了,并未使用应用访问位置就是应用退入后台后是否还可以访问位置,点击允许,就默认是始终开启定位功能,用户无法选择“应用使用期间开启”这个选项,需要自己去设置里自己改,而下面这个弹窗就只能让用户选择 “使用期间开启” 或者 “不允许使用定位” 这两个选项,如果用户要开启后台定位功能,也需要自己去设置里修改成“始终”这个选项。

(2)在iOS11以上,iOS14以下的系统版本的手机上(比如iOS12):

注意:在设置-隐私-定位-应用的定位权限,里面的选项是跟info.plist的key相关联的,key设置的不同,里面选项个数也会不用,具体如下:

a+b+c:设置-隐私-定位-应用的定位权限列表里有3个选项(永不,始终,使用应用期间),意思是允许开启后台定位功能的,看用户自己选择了

a+b+c :应用刚安装时打开的位置权限弹窗如下:

a+b+c

一个小细节:a+b+c情况,弹窗副标题会按照c的key对应的value内容显示,所以为了防止出现设置不同弹窗提示不同,三个key的value对应的权限描述内容尽量保持一致。

a+b:设置-隐私-定位-应用的定位权限列表里只有2个选项(永不,使用应用期间),意思是只有应用使用期间可以定位,不支持后台定位功能

a+b:应用刚安装时打开的位置权限弹窗如下:

a+b

看得出来,能不能后台定位直接体现在了权限弹窗上了,上面弹窗的始终允许就是允许应用后台定位,下面弹窗只有应用使用期间定位功能,也就是只有应用处于前台运行时才能定位,退到后台就自动关闭定位功能了。

(3)在iOS14及以上系统版本的手机上:

设置里的权限列表数量也是跟key的设置相关联的,跟(2)的区别只是弹窗样式的不同

a+b+c:应用刚安装时打开的位置权限弹窗如下:

a+b+c (a+b)

a+b:弹窗也是长这样,就不单截图了,只不过a+b这种情况,设置里权限列表里只有(永不,使用应用期间)两个选择,a+b+c会多一个“始终”。

需要注意的一点是,如果是a+b+c这种情况,弹窗上你选了“使用App时允许”,偶尔当应用退到后台时会再弹出来一个弹窗,弹窗样式如下:

a+b+c

弹窗大致意思就是,因为你最开始选择的是应用使用期间定位,而且当时的权限里没有始终允许定位的选项,你可能会需要,我询问你一次,你要不要开启后台定位功能,如果这时候你选“保持仅使用期间”这个选项,那就是依然授权应用使用期间定位,关闭后台定位,如果你选下面这个选项,就相当于开启了应用后台定位功能。

如果你的应用不需要后台定位功能,为了防止这个弹窗的弹出,建议直接将c这个key去掉,这样应用本身的定位权限就不存在后台定位这个功能了,也就不会弹出这个询问弹窗了。

但如果你需要使用后台定位功能,除了添加上面这些key,还需要做一些其他设置,这里就不再叙述了,请翻阅其他博主的博客,有的讲的很清楚,上述内容如有描述和理解错误的地方,烦请多多指正。

相关文章

  • ios 关于后台定位的开启和关闭在plist中的设置

    最近项目因为用不到后台定位功能,需要把后台定位关闭,只针对info.plist 列表里的几个关于定位的key和权限...

  • iOS开发定位权限

    定位权限 如果项目需要开启定位功能,需要在info.plist中设置Privacy - Location Alwa...

  • iOS定位和地图

    一.定位 1.iOS8以后前台定位 A.代码 B.配置信息Info.plist 2.iOS8以后后台定位 A.代码...

  • iOS11定位权限的问题

    在iOS10以前,定位权限如果只需要在前台定位,在 Info.plist 添加定位权限申请 如果还需要在后台定位,...

  • swift3.0 后台定位功能

    公司需求后台定位,间隔五分钟后台上传坐标信息,这里主要把后台定位功能整理了一下。plist 的权限设置 这里就不具...

  • xcode11 iOS13适配记录

    1.新增了夜间模式,可在单独页面中关闭打开,也可在plist文件中全局设置 2.在iOS13中,通过KVC方式来获...

  • 学习随记 - 定位服务

    1. IOS定位服务的开启与基本设置 1. 要想使用IOS中的定位服务首先需要包含头文件CoreLocation/...

  • iOS检测是否开启定位、是否允许消息通知

    iOS 判断是否开启定位 iOS 判断是否允许消息通知 iOS 跳转系统设置打开定位页面 iOS 跳转系统设置打开...

  • iOS 关于前后台定位的设置

    这两天把定位的功能仔细捋了一下,做个总结: 用系统自带的定位功能举例吧 如果应用只有简单的定位需求,一般用系统自带...

  • iOS从App跳转至系统设置菜单

    在每个app中的设置页面都希望能够很方便的让用户开启/关闭消息提醒。方便用户体验。 主要代码 例子 定位服务定位服...

网友评论

    本文标题:ios 关于后台定位的开启和关闭在plist中的设置

    本文链接:https://www.haomeiwen.com/subject/graywktx.html