
问题1:开发版本连续点击获取定位,会报错
【原因】:
高德地图的api使用的是wx.getLocation,而小程序中wx.getLocation在开发版本、体验版本,连续调用会进行报错。生产版本会使用缓存,不会出现这个问题,详见:
https://developers.weixin.qq....
【解决方法】:
需要区分版本进行处理,在生产版本不进行限制,在开发体验版本进行节流处理,30S内点击不进行处理或者提示获取过于频繁。
问题2:用户拒绝授权定位之后,不做相关处理,再次wx.getLocation不会弹出授权页面
【原因】:微信小程序设计如此。
【解决方法】:
在定位操作之前,去判断用户是否有授权定位权限,如果没有,提示用户授权,打开设置页面。
(ps.怪不得买奶茶之类的小程序一进来就先要求授权定位,都是为了防止之后的没有权限的问题)
代码如下:
let _this = this;
wx.getSetting({
success(res) {
if (!res.authSetting['scope.userLocation']) {
wx.authorize({
scope: 'scope.userLocation',
success() {
_this.throttleGetLocation(); //有权限直接获取定位
},
fail(err){ //没有权限打开设置
_this.$modal.alert({
title: '提示',
content: '检测到您没打开定位功能权限,是否去设置打开?',
okFun: () => {
wx.openSetting({
success(res) {}
})
}
});
}
})
}
})
问题3:调试状态下获取地址成功,非调试状态获取不成功
【原因】:没有设置高德地图api的域名
【解决方法】:在微信公众平台设置域名 https://restapi.amap.com