【小程序开发踩坑】定位及高德地图api相关

问题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

你可能感兴趣的:(小程序高德地图)