【问题标题】:How to interact with server when app is running in background ionic-cordova?当应用程序在后台 ionic-cordova 中运行时如何与服务器交互?
【发布时间】:2019-03-29 21:00:12
【问题描述】:

我使用 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);

});

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

【问题讨论】:

  • 两件事:为什么需要在此处的“区域”中运行代码?如果您的应用因为在后台而没有 UI,您不应该关心添加区域。第二:您是否尝试添加代码以发布到那里的服务器?它有效吗?如果不是,您会遇到什么错误?

标签: cordova ionic-framework geolocation cordova-plugins


【解决方案1】:

更新你的配置

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

//IOS
 pauseLocationUpdates: false,
saveBatteryOnBackground: false,

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多