一、官方小程序后台持续定位功能
事前准备:
(1)代码中允许持续定位:
根目录app.json文件,最外层添加
{
// "xxx":xxx,
// ......
"requiredBackgroundModes":["location"]
}
(2)小程序实机界面中打开持续定位设置:
小程序 -> 右上角三个点 -> 设置 -> 位置信息 -> 使用小程序期间和离开小程序后
页面js代码:
onReady: function () {
this.startGetLocationByInterval()
},
startGetLocationByInterval:function () {
var that = this
wx.startLocationUpdateBackground({
success(res) {
console.log('开启后台定位', res)
},
fail(res) {
console.log('开启后台定位失败', res)
}
})
let index = 0
wx.onLocationChange(function(res) {
index += 2
// 60秒上传1次经纬度
if(index % 60 == 0){
that.saveLocation(res.longitude,res.latitude)
}
if(index > 6000){
index = 0
}
})
},
endGetLocationByInterval:function () {
wx.offLocationChange((result) => {});
wx.stopLocationUpdate({
success: (res) => {},
})
},
saveLocation: function (lng, lat) {
}
二、单次获取定位 + js定时触发
页面js代码:
data: {
interval: null
},
startGetLocationByInterval_bk:function () {
var that = this
var interval = setInterval(function () {
wx.getLocation({
type: 'wgs84',
success (res) {
that.saveLocation(res.longitude,res.latitude);
}
})
}, 60000)
that.setData({
interval:interval
})
},
endGetLocationByInterval_bk:function () {
clearInterval(this.data.interval)
},
// 上传经纬度
saveLocation: function (lng, lat) {
}