在 ionic 3 中使用后台地理位置无法将位置数据更新到服务器中
Posted
技术标签:
【中文标题】在 ionic 3 中使用后台地理位置无法将位置数据更新到服务器中【英文标题】:Updating location data into the server is not working using background geo locaion in ionic 3 【发布时间】:2019-12-27 11:15:17 【问题描述】:我正在使用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();
【问题讨论】:
【参考方案1】: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"
]
【讨论】:
以上是关于在 ionic 3 中使用后台地理位置无法将位置数据更新到服务器中的主要内容,如果未能解决你的问题,请参考以下文章
无法在后台服务中使用 LocationManager 获取位置