iOS 使用时和始终的位置

问题描述 投票:0回答:1

我正在开发一个导航应用程序,其中位置位于最前沿。根据我获得的信息,如果用户在iOS设备上允许“NSLocationAlwaysAndWhenInUseUsageDescription”权限,则应用程序在后台运行时可以毫无问题地访问位置更改。但是,当我第一次请求此权限并选择“仅在使用应用程序时”选项时,我无法访问位置更改,因此它不起作用。当用户退出应用程序时,iOS 会显示一条消息并再次请求许可,当我选择“始终”选项时,我可以毫无问题地在后台访问位置更改。我不明白我的问题是由于权限还是我的用户体验计划错误。如果您有任何信息可以分享给我吗?

我使用的技术:

ios react-native location ios-permissions
1个回答
0
投票

您体验到的流程是正确的。您可以“请求”“始终”访问,但用户拥有是否授予访问权的最终控制权。 不幸的是,应用程序滥用“始终”访问的历史由来已久(耗尽设备的电池、将后台跟踪信息用于不一定符合用户最佳利益的目的等)。因此,操作系统让用户最终控制应用程序是否可以在后台跟踪位置信息是有充分理由的。

因此,如果后台位置跟踪对于用户确实至关重要(而不仅仅是应用程序出于自身目的而想要捕获的东西),我们通常会做两件事:

    在请求位置访问(或在使用字符串中)之前,我们会说明为什么“始终”权限对于应用程序的使用至关重要。
  1. 就这方面而言,一个有趣的设计选择是“当”您请求此许可时。如果应用程序在首次启动时愉快地请求“始终”权限,则用户通常不会有上下文来决定是否授予此权限,而且他们很可能会拒绝。如果您将其推迟到用户对应用程序有足够的体验以欣赏授予此权限的价值时,他们可能会更倾向于接受它。

    重新启动应用程序时,我们可以检查授权状态,如果已将其设置为“一次”或“仅在应用程序运行时”,则可以呈现一个 UI 来重申用户为什么要授予“始终”权限,如果他们同意,请将他们重定向到“设置”应用程序以更改权限。

    请注意,我要注意的是,除非从用户的角度来看这是绝对必要的,否则每次启动应用程序时都要提醒用户注意这一点。听起来您的应用程序可能就是这种情况,但请注意,App Store 审核过程会带着偏见看待这一点,如果您反复要求后台位置权限,那么它更像是一个“有它就好”的功能,您的应用程序可能会被拒绝。
© www.soinside.com 2019 - 2024. All rights reserved.