【问题标题】:Expo - How to get location permission specific data?Expo - 如何获取位置许可特定数据?
【发布时间】:2022-01-04 04:26:50
【问题描述】:

我正在使用 Expo SDK 42,但在检索有关前台位置权限的特定数据时遇到了一些问题。

例如,对于 ios,当用户被要求许可时,他会得到 3 个选项:“允许一次”、“使用应用时允许”或“不允许”。

正在根据documentation使用以下方法请求权限:requestForegroundPermissionsAsync()。所以在请求它之后,如果用户选择“允许一次”或“使用应用程序时允许”,该方法将返回完全相同的对象,其中包含一个属性,告诉该权限是“授予”的,并且没有区别如果用户选择了一个选项,则返回值。

问题是,我需要知道并区分用户是选择“允许一次”还是“使用应用程序时允许”,因为基于此,我将显示不同的屏幕。

您知道世博会是否可以做到这一点?如果没有,是否有解决方法或我可以做些什么来了解用户选择了哪个选项?

谢谢。

【问题讨论】:

    标签: ios react-native expo ios-permissions


    【解决方案1】:

    简短的回答是不可能区分“使用时允许”和“允许一次”,而且您的应用确实不需要这样做。如果用户选择“允许一次”,那么您的应用将在下次启动时再次请求访问。

    您的应用基本上需要处理三种状态:

    • 位置访问未确定
    • 已授予位置访问权限
    • 位置访问被拒绝。

    最初,您的应用将处于未确定状态。作为回应,您请求位置访问。如果用户选择“允许”或“允许一次”,您将获得访问授权状态。

    如果他们选择了“允许一次”,那么下次您的应用启动时状态将返回“未确定”,您需要再次询问。

    如果他们选择“使用时允许”或“拒绝”,那么该状态就是您的应用在后续启动时看到的状态,除非用户进入您的应用设置并进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      相关资源
      最近更新 更多