Фоновая геолокация не является наблюдаемой - PullRequest
0 голосов
/ 31 января 2019

Мне нужно внедрить фоновую геолокацию в моем приложении.Я получаю доступ к этой ионной документации , там показан код ниже:

this.backgroundGeolocation.configure(config)
  .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 HTTP request is 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

  });

Когда я использовал этот код в своем приложении, мой ts-lint обвиняет метод configure(config) в Promise<any> а не Observable, поэтому я не могу использовать subscribe.Я переключил subscribe на then.Но когда я запускаю, показывает эту ошибку ниже:

ERROR Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
    at BackgroundGeolocation.configure (vendor.js:82333)
// error below ommited

Кто-то может мне помочь?

1 Ответ

0 голосов
/ 01 февраля 2019

Проблема в версии плагина.В Ionic 3 эта версия работает нормально:

файл config.xml: <plugin name="cordova-plugin-mauron85-background-geolocation" spec="^2.2.5" />

файл package.json: "@ionic-native/background-geolocation": "^3.14.0",

Я нашел этот ответ в этом repository .

В документации Ionic v3 неверно, потому что там говорится, что нам нужно использовать следующие команды:

$ ionic cordova plugin add cordova-plugin-mauron85-background-geolocation@alpha
$ npm install --save @ionic-native/background-geolocation@4

Но нам нужны эти командычтобы нормально работать и, наконец, использовать subscribe:

$ ionic cordova plugin add cordova-plugin-mauron85-background-geolocation@2.2.5
$ npm install --save @ionic-native/background-geolocation@3
...