Ionic React 在 ios 应用程序处于后台时跟踪用户的实时位置

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

我是本地 iOS 开发人员,第一次尝试离子反应编程。我正在做 POC 来跟踪 ios 设备的位置,而应用程序在后台。但两天以来我一直在努力实现这一目标。有人可以帮我做到吗?

根据 ionic React 文档,我们需要使用

@capacitor/geolocation
来实现位置跟踪功能。我阅读了文档,发现
watchPosition(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>
此方法可用于跟踪设备的实时位置。

请参考以下代码

我用来获得用户许可来跟踪工作正常的位置的代码。

const requestPermission = async () => {
  try {
    const result = await Geolocation.requestPermissions();
    if (result.location === 'granted') {
      console.log('Permission granted');
    } else {
      // Handle denied permission
    }
  } catch (error) {
    console.error('Error requesting location permission:', error);
  }
}

我用来在后台跟踪用户位置的代码

const startBackgroundTracking = async () => {
  console.log('startBackgroundTracking');
  const watchId = Geolocation.watchPosition(
    {
      enableHighAccuracy: true,
      timeout: 10000,
      maximumAge: 5000,
      // Other options...
    },
    (position: Position | null, error: any) => {
      console.log('(position: Position | null, error: any) =>', position, error)

      if (position) {
        console.log('Background position:', position.coords.latitude, position.coords.longitude);
        // Send location updates to server or perform desired actions
      } else if (error) {
        console.error('Error watching position:', error);
      }
    }
  );

请注意,用户设备的实时跟踪性能良好,当应用程序进入后台状态时,我面临实时跟踪问题。

我还在 Xcode 项目的 Info.plist 中添加了所需的键 -

  • NSLocationAlwaysUsageDescription(隐私 - 位置始终使用说明)
  • NSLocationWhenInUseUsageDescription(隐私 - 使用时的位置使用说明)

我还在 Xcode 项目中启用了后台位置更新功能

如有任何帮助,我们将不胜感激!预先感谢。

ionic-framework background location ionic-react
© www.soinside.com 2019 - 2024. All rights reserved.