在我的离子项目中,我使用了地理围栏 . 当我在该地区打开应用程序时,会显示通知 . 如何在跨越地理围栏的边界时查看通知 .
我使用了3个围栏(12Km.300m,50m) . 当在50m范围内时,应用程序显示三个通知(三个围栏的通知) . 当我处于50米范围的条件范围内时,我如何能够显示唯一的通知 .
在app.component.ts中
constructor(public platform: Platform,
public statusBar: StatusBar,
...........) {
this.addGeofence();
}
private addGeofence() {
let fence = [{
id: '69ca1b88-6fbe-4e80-add-sd-4d3748-far',
latitude: 8.556498,
longitude: 76.881820,
radius: 12000,
transitionType: 1,
notification: {
id: 111111111,
title: 'Welcome ',
text: '12km range.',
openAppOnClick: true
}
},
{
id: '69ca1b88-6fbe-4e80-add-sd-4d3748-closevicinity',
latitude: 8.556498,
longitude: 76.881820,
radius: 300,
transitionType: 1,
notification: {
id: 222222222,
title: 'Welcome',
text: '300m range',
openAppOnClick: true
}
},
{
id: '69ca1b88-6fbe-4e80-add-sd-4d3748-near',
latitude: 8.556498,
longitude: 76.881820,
radius: 50,
transitionType: 1,
notification: {
id: 333333333,
title: 'Welcome',
text: '50m range',
openAppOnClick: true
}
},]
1 回答
我的建议:您可以使用离子的地理定位插件来获取当前位置 . 要么使用它来检查每分钟一次的位置,要么使用背景地理定位插件在后台模式下执行此操作 . 对于您获得的每个位置更新,请检查您是否处于地理围栏的半径之一 . 您可以使用像草皮这样的库来进行数学运算 .
如果您只是想在越过边界时收到通知,请将您最后的地理围栏保存到存储中,每次启动应用程序检查时,地理围栏是否发生变化 .
使用位置订阅和后台模式时请小心,因为它可能需要大量电池 .