本篇文章实现了uniapp 微信小程序实时获取定位信息,小程序打开即可持续获取定位信息, 位置更新也会触发相关自定义事件
有关"uni.onLocationChange"的相关内容,不再赘述,详情见官网:uni.onLocationChange(FUNCTION CALLBACK) | uni-app官网uni-app,uniCloud,serverlesshttps://uniapp.dcloud.net.cn/api/location/location-change.html#startlocationupdate
(重要设置"startLocationUpdate"和"onLocationChange"):
"mp-weixin" : {
"appid" : "", //appid
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "定位" //微信小程序获取location必填
}
},
"requiredPrivateInfos": [
"getLocation", //使用uni.getlocation才需声明
"startLocationUpdate", //必要
"onLocationChange" //必要
]
},
methods: {
// 监听全局变量变化
watch: function(variate, method) {
var obj = this.globalData;
let val = obj[variate]; // 单独变量来存储原来的值
Object.defineProperty(obj, variate, {
configurable: false,
enumerable: true,
set: function(value) {
val = value; // 重新赋值
method(variate, value); // 执行回调方法
},
get: function() {
// 在其他界面调用getApp().globalData.variate的时候,这里就会执行。
return val; // 返回当前值
}
})
},
onLoad() {
//实时获取当前位置
getApp().watch('latitude', this.watchLocation);
getApp().watch('longitude', this.watchLocation);
},
//监听location变化回调
watchLocation: function(name, value) {
console.log('name==' + name, value);
if (name == 'latitude') {
this.latitude = value;
}
if (name == 'longitude') {
this.longitude = value;
}
},
这样就实现啦,如果本文帮助到你的话 记得点个赞哦~