首页 > 解决方案 > 当应用程序在后台 ionic-cordova 中运行时如何与服务器交互?

问题描述

我正在使用cordova-plugin-mauron85-background-geolocation在后台获取位置,即使应用程序没有在前台运行。我想要实现的是获取用户的坐标并将其发送或发布到服务器以进行实时位置跟踪和更新数据库。我认为问题是位置点在后台更新,但数据没有发布到服务器。当应用程序不在前台时,有什么方法可以与服务器交互。

这是我的代码:

// Background Tracking
let config: BackgroundGeolocationConfig = {
desiredAccuracy: 0,
stationaryRadius: 20,
distanceFilter: 10,
debug: true,
interval: 2000
};

this.backgroundGeolocation
.configure(config)
.subscribe((location: BackgroundGeolocationResponse) => {

console.log('BackgroundGeolocation: ' + location.latitude + ',' + location.longitude);

// Run update inside of Angular's zone
this.zone.run(() => {
this.lat = location.latitude;
this.lng = location.longitude;
});

// Server interaction to POST location coordinates.

}, (err) => {

console.log("ERROR in config", err);

});

任何帮助将不胜感激。谢谢

标签: cordovaionic-frameworkgeolocationcordova-plugins

解决方案


将您的配置更新为

let config: BackgroundGeolocationConfig = {
desiredAccuracy: 0,
stationaryRadius: 20,
distanceFilter: 10,
debug: true,
interval: 2000,
 // Android
startForeground: true,
stopOnStillActivity: false

//IOS
 pauseLocationUpdates: false,
saveBatteryOnBackground: false,

}

推荐阅读