首页 > 解决方案 > iOS 14:允许位置访问 | 始终找不到菜单

问题描述

我尝试使用 iOS 14 模拟器在 Xcode 12 beta 2 中运行我的项目。我观察到“允许位置访问设置”屏幕中找不到“始终”菜单。

在此处输入图像描述

我已经给出了以下 info.plist

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>TEST APP</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>TEST APP</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>TEST APP</string>

标签: iosswiftxcodeios14

解决方案


“始终允许”选项已从初始位置权限提示中删除。您可以稍后将此选项作为新提示获取。那么问题来了,如果我们在后台需要定位功能,我们将如何支持呢?

在此处输入图像描述

实现这一目标的方法 -

  1. 在您的应用接收位置信息之前调用方法“locationManager.requestAlwaysAuthorization()” 。如果您的应用程序需要始终获得权限,并且您希望稍后收到始终获得权限的提示。

  2. 最初,用户可以选择“使用应用程序时”或选择一个新选项“允许一次”(iOS 13 本身引入)。

  3. 如果用户继续使用该应用,iOS 13 现在会自动提示将位置权限从“使用应用时”升级为“始终允许”。

    在此处输入图像描述

  4. 下次解锁设备并启动已获得“使用应用程序时”权限的应用程序后,您将收到 #2 提示。

资源

这个 WWDC 2019 视频还表明这仍然是可能的:https ://developer.apple.com/videos/play/wwdc2019/705/

在 6:57 “...您可以先在使用时请求授权,然后在稍后的某个时间点,当用户与需要授权的应用程序的功能进行交互时,以后总是寻求授权...”


推荐阅读