使用 React Native 跟踪后台位置

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

嗨,我刚刚开始学习 React Native 和 Expo。现在,我正在尝试构建一个应用程序,即使该应用程序位于后台(经用户同意),该应用程序也可以收集用户的位置。我一直在使用 expo-location,但事实证明,当用户被要求获得位置跟踪权限时,需要选择“始终”,但 expo-go 不支持这一点。我可以通过哪些方式测试我的应用程序?

我一直在考虑使用 EAS 服务构建独立应用程序来测试或使用自定义开发客户端,但我不确定它们是否达到了我想要的效果。有什么建议吗?

react-native expo geolocation eas
1个回答
0
投票

要使用 Expo 在 React Native 应用程序中测试后台位置跟踪,您确实有几个可行的选择:

  1. EAS 构建:使用 Expo 应用程序服务 (EAS) 构建独立应用程序允许您测试后台位置跟踪等功能,这需要“始终”位置权限。这种方法将使您能够创建适用于 Android 的 APK 或适用于 iOS 的 IPA,可以在实际设备上安装和测试。以下是步骤的基本概述:

    • 安装 EAS CLI (
      npm install -g eas-cli
      )。
    • 使用
      eas.json
      配置您的项目。
    • 运行
      eas build
      创建独立版本。
    • 在您的设备上安装构建版本以进行测试。
  2. 自定义开发客户端:这种方法有利于快速开发和测试,而无需每次都进行完整构建。它允许您使用具有所需本机代码更改和权限的自定义客户端。要进行此设置:

    • 使用 EAS Build 创建自定义客户端。
    • 将您的应用配置为请求“始终”位置权限。
    • 在您的设备上安装自定义客户端并使用它来运行您的项目。

这里有一些额外的提示:

  • 权限处理:确保您的
    app.json
    app.config.js
    包含所需的权限。例如:
    {
      "expo": {
        "ios": {
          "infoPlist": {
            "NSLocationAlwaysUsageDescription": "We need your location to provide better services.",
            "NSLocationWhenInUseUsageDescription": "We need your location to provide better services."
          }
        },
        "android": {
          "permissions": [
            "ACCESS_FINE_LOCATION",
            "ACCESS_COARSE_LOCATION",
            "ACCESS_BACKGROUND_LOCATION"
          ]
        }
      }
    }
    
  • 不同场景测试:在前台、后台、完全关闭等多种场景下测试应用程序,以确保后台位置跟踪按预期工作。

两种方法(EAS 构建和自定义开发客户端)都适合测试应用程序的后台位置跟踪。由于构建过程,使用 EAS Build 可能会慢一些,但它可以确保您测试实际的独立应用程序行为。自定义开发客户端在开发过程中的迭代测试速度更快。

© www.soinside.com 2019 - 2024. All rights reserved.