getLocation2.17.0版本起仅第一次会返回实时定位信息。什么情况下算第一次?
发布于 4 年前 作者 mchang 9019 次浏览 来自 问答
  if (wx.getSetting) {
    wx.getSetting({
      success(res) => {
        if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
          wx.showModal({
            title'请求授权当前位置',
            content'需要获取您的地理位置,请确认授权',
            successfunction (res{
              if (res.confirm) {
                wx.openSetting({
                })
              } else if (res.cancel) {
                wx.showModal({
                  title'提示',
                  content'授权失败',
                  showCancelfalse
                })
                wx.removeStorage('tempAddrInfo_dingwei');
                return;
              }
            }
          })
        } else {
          wx.getLocation({ //授权获取当前位置信息
            type'gcj02',
            success(res) {
              qqmapsdk_dizhi(that, qqmapsdk, res.latitude, res.longitude);
            },
            fail(res) { //请求频率第一次返回当前未知信息,剩余返回第一次位置信息
              wx.showModal({
                title'提示',
                content'无法获取您的位置信息,请到设置—>微信—>位置中检查是否打开定位服务并允许访问您的定位。并重新进入小程序',
              })
            }
          })
        }
      }
    })
  } else {
    // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
    wx.showModal({
      title'提示',
      content'当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
    })
    return;
  }

这里点击拒绝

然后在次进入页面,会再次进入页面点击确认授权后会调转到这里

确认授权后获取用户位置提示:调用太频繁。

更新公告中:

正式版中,为保证小程序正常运行同时不过度消耗用户电量,一定时间内(根据设备情况判断)调用getLocation,仅第一次会返回实时定位信息,剩余返回与第一次定位相同的信息。

这里的“第一次”是指调正式版,调用成功时算第一次,还是说调用失败时也算第一次?

回到顶部