问题说明 我正在跟踪应用程序,并希望在用户启动其跟踪服务时启用“始终”位置权限。在这里,我正在构建用户行进的路径,因此即使应用程序是背景,我也要检测纬度和经度。现在,当用户将位置选项选择为“使用中的应用程序”时,就会出现问题,在这种情况下,当应用程序在后台运行并产生问题时,我无法获得确切的用户经度和纬度。在这种情况下,我无法为用户建立适当的跟踪。
为此,我仅添加了
“ NSLocationAlwaysUsageDescription”
但它会产生错误::
此应用尝试访问隐私敏感数据,但没有 用法说明。应用程序的Info.plist必须同时包含 NSLocationAlwaysAndWhenInUseUse描述和 NSLocationWhenInUseUsageDescription键,带有字符串值说明 向用户显示应用程序如何使用这些数据
要解决此问题,我必须添加所有权限,在我的情况下可以正常工作。但是现在用户在启用位置时获得了三个选项:“使用应用程序时允许”,“始终允许”和“不允许”。这里出现问题。
要求 我想限制用户仅启用“始终”位置选项,但是现在位置请求弹出窗口显示了三个选项。有什么方法可以检测用户选择的选项,如果用户会选择除总是以外的任何选项,我会告诉他在跟踪系统上工作时始终选择“始终”。
1。基本上,我想检测用户的所选位置选项,如果不是“ always”,我想再次要求他选择“ always”位置选项。这可能吗?
2。我想在请求服务弹出窗口中添加“ always”选项,目前我获得了这三个值:“使用应用程序时允许”,“允许一次”和“不允许”。 我已添加以下格式的权限::
<key>NSLocationUsageDescription</key>
<key>NSLocationAlwaysUsageDescription</key>
<key>NSLocationWhenInUseUsageDescription</key>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
但是它仅显示三个值。请检查此屏幕截图::
答案 0 :(得分:3)
您可以使用react-native-permissions:
import Permissions, { PERMISSIONS, RESULTS } from 'react-native-permissions'
const permissionStatus = await Permissions.check(PERMISSIONS.IOS.LOCATION_ALWAYS)
permissionsStatus
将成为RESULTS
可能的值之一: