背景和前景中的位置跟踪

时间:2019-08-19 14:49:19

标签: ionic-framework capacitor

我正在为一家公司构建一个android应用,用户将在偏远的地方工作。因此,公司所有者需要跟踪用户的位置。公司员工将登录该应用,我们需要开始跟踪。我希望每30分钟定位一次用户的位置(即使用户已经/尚未从先前的位置移走)。 我只想知道,我可以在ionic 4项目中使用电容器地理位置和setinterval实现此功能吗? 任何帮助或建议,将不胜感激。

谢谢

阿比拉什

2 个答案:

答案 0 :(得分:1)

对于那些将电容器与离子一起使用的人,请遵循here的说明并使用以下软件包安装软件包:

npm install @mauron85/cordova-plugin-background-geolocation
npm install @ionic-native/background-geolocation
ionic cap sync

在使用Android时,您很可能会遇到构建错误。以下是帮助我们使插件运行的步骤:

  • 确保迁移到AndroidX(在Android Studio中选择 “重构/迁移到AndroidX ...”)
  • 在电容器创建的Android文件夹中的strings.xml文件中的资源部分添加以下行:

<string name="mauron85_bgloc_account_name">@string/app_name</string>
<string name="mauron85_bgloc_account_type">$PACKAGE_NAME.account</string>
<string name="mauron85_bgloc_content_authority">$PACKAGE_NAME</string>

答案 1 :(得分:0)

还没有使用电容器。但是可以,您可以为此实现后台地理位置插件。

最小示例:

import { BackgroundGeolocation, BackgroundGeolocationConfig, BackgroundGeolocationResponse } from '@ionic-native/background-geolocation';

constructor(private backgroundGeolocation: BackgroundGeolocation) { }

...

const config: BackgroundGeolocationConfig = {
            desiredAccuracy: 10,
            stationaryRadius: 20,
            distanceFilter: 30,
            debug: true, //  enable this hear sounds for background-geolocation life-cycle.
            stopOnTerminate: false, // enable this to clear background location settings when the app terminates
    };

this.backgroundGeolocation.configure(config)
  .then(() => {

    this.backgroundGeolocation.on('location').subscribe((location: BackgroundGeolocationResponse) => {
      console.log(location);

      // IMPORTANT:  You must execute the finish method here to inform the native plugin that you're finished,
      // and the background-task may be completed.  You must do this regardless if your operations are successful or not.
      // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background.
      this.backgroundGeolocation.finish(); // FOR IOS ONLY
    });

  });

// start recording location
this.backgroundGeolocation.start();

// If you wish to turn OFF background-tracking, call the #stop method.
this.backgroundGeolocation.stop();

https://ionicframework.com/docs/native/background-geolocation