微信小程序后台持续定位功能使用详解
1.wx.onLocationChange//监听位置实时变化
2.wx.stopLocationUpdate//关闭监听实时位置变化,前后台都停止消息接收
3.wx.startLocationUpdate//开启小程序进入前台时接收位置消息
4.wx.startLocationUpdataBackground//开启小程序进入前后台时均接收位置消息
详细信息可查看
<template>
<div>
<u-navbar :is-back="true" back-text="返回" back-icon-color=#b0d0fc :back-text-style="{color: #b0d0fc}"
:background="{
backgroundColor: #fff,
backgroundSize: cover,
backgroundImage: linear-gradient(45deg, #567cf6, #56abfb)
}">
</u-navbar>
<u-button @click="start"> 开始定位</u-button>
<u-button @click="end"> 结束定位</u-button>
<u-button @click="toSetting"> 设置权限</u-button>
</div>
</template>
<script>
import moment from "moment"; // 格式化时间 插件
export default {
data() {
return {
num: 0,
list: [],
res: null
}
},
onLoad() {
this.startBack() // 开启监控环境
},
methods: {
//这个函数是一开始点击事件触发的:
startBack() {
let that = this;
let index = 0
let _locationChangeFn = (res) => {
console.log(location change, res)
let ss = moment().format(YYYY-MM-DD HH:mm:ss);
console.log(ss)
index += 2
// 10秒上传1次经纬度
if (index % 10 == 0) {
// 执行自己的代码
// that.saveLocation(res.longitude, res.latitude)
console.log("执行上传点阵", index)
}
if (index > 1000) {
index = 0
}
}
wx.onLocationChange(_locationChangeFn);
},
start() {
let _this = this;
wx.startLocationUpdateBackground({
success: (res) => {
console.log(res + "开始了");
// wx.onLocationChange(_locationChangeFn);
},
fail: (err) => {
console.log(获取当前位置失败, err)
_this.toSetting()
}
})
},
toSetting() {
console.log("执行了设置方法")
let self = this
wx.openSetting({
success(res) {
console.log(res)
if (res.authSetting["scope.userLocation"]) {
// res.authSetting["scope.userLocation"]为trueb表示用户已同意获得定位信息,此时调用getlocation可以拿到信息
// self.authorization() // 调用开始方法
}
},
fail(err){
console.log("open失败",err)
}
})
},
end() {
wx.stopLocationUpdate({
success: (res) => {
console.log(stopLocationUpdate, res)
}
})
}
}
}
</script>
<style lang="scss">
</style>
上一篇:
IDEA上Java项目控制台中文乱码
