使用 ionic 3 中的背景地理位置无法将位置数据更新到服务器中
Updating location data into the server is not working using background geo locaion in ionic 3
我正在使用 https://github.com/mauron85/cordova-plugin-background-geolocation。它在前台提供位置详细信息,并在应用程序关闭时提供调试消息,但它不会将位置详细信息更新到服务器的前台和后台。
提前致谢
const config: BackgroundGeolocationConfig = {
desiredAccuracy: 10,
stationaryRadius: 10,
distanceFilter: 10,
debug: false,
stopOnTerminate: false,
startForeground: true,
notificationTitle: 'location tracking',
notificationText: 'Active',
interval: 60000,
url: localStorage.getItem('api_base_url')+'user/currentlocation',
syncUrl:localStorage.getItem('api_base_url')+'user/currentlocation',
httpHeaders: {
'Content-Type': 'application/json'
},
postTemplate: {
lat: '@latitude',
lon: '@longitude',
user_id: '1',
currentDate: '12-12-2019',
address: 'test',
}
};
this.backgroundGeolocation.configure(config)
.then(() => {
this.backgroundGeolocation.on(BackgroundGeolocationEvents.location).subscribe((location: BackgroundGeolocationResponse) => {
console.log(location);
});
});
this.backgroundGeolocation.start();
Background geo location post template
请记住,当 postTemplate 是 jsonObject 并且 jsonArray 是数组数组时,所有位置(即使是单个位置)都将作为对象数组发送!
在服务器端,我将 JSON 对象更改为对象数组。
例如,
{
"user_id": "1",
"lon": "13.2",
"lat": "82.3"
}
我把上面的JSON对象改成了下面的
[{
"user_id": "1",
"lon": "13.2",
"lat": "82.3"
}]
我正在使用 https://github.com/mauron85/cordova-plugin-background-geolocation。它在前台提供位置详细信息,并在应用程序关闭时提供调试消息,但它不会将位置详细信息更新到服务器的前台和后台。
提前致谢
const config: BackgroundGeolocationConfig = {
desiredAccuracy: 10,
stationaryRadius: 10,
distanceFilter: 10,
debug: false,
stopOnTerminate: false,
startForeground: true,
notificationTitle: 'location tracking',
notificationText: 'Active',
interval: 60000,
url: localStorage.getItem('api_base_url')+'user/currentlocation',
syncUrl:localStorage.getItem('api_base_url')+'user/currentlocation',
httpHeaders: {
'Content-Type': 'application/json'
},
postTemplate: {
lat: '@latitude',
lon: '@longitude',
user_id: '1',
currentDate: '12-12-2019',
address: 'test',
}
};
this.backgroundGeolocation.configure(config)
.then(() => {
this.backgroundGeolocation.on(BackgroundGeolocationEvents.location).subscribe((location: BackgroundGeolocationResponse) => {
console.log(location);
});
});
this.backgroundGeolocation.start();
Background geo location post template
请记住,当 postTemplate 是 jsonObject 并且 jsonArray 是数组数组时,所有位置(即使是单个位置)都将作为对象数组发送!
在服务器端,我将 JSON 对象更改为对象数组。
例如,
{
"user_id": "1",
"lon": "13.2",
"lat": "82.3"
}
我把上面的JSON对象改成了下面的
[{
"user_id": "1",
"lon": "13.2",
"lat": "82.3"
}]