wx.getLocation()无授权弹框,预览/真机调试/体验和线上版本均无效?
发布于 6 年前 作者 pengli 10000 次浏览 来自 官方Issues

开发阶段在开发者工具端,没有任何问题。

测试阶段发现 在手机端几乎不会弹出授权框(有偶尔几次弹出)。

wx.openSetting()打开设置页也没有关于位置信息的设置项。

调试显示wx.getLocation()直接走了fail()返回内容:{errMsg: “getLocation:fail authorize no response”}

有尝试使用wx.authorize在onShow()里按照文档实例加入以下代码提前向用户发起授权请求。

wx.getSetting({
  success(res) {

    if (!res.authSetting['scope.userLocation']) {

     console.log(res.authSetting);

      wx.authorize({
        scope: 'scope.userLocation',
        success(e) {
          console.log(e);
        }
      })
    }
  }
});

结果为console.log(res.authSetting);执行并且打印出的内容的确没有scope.userLocation,但是授权弹框没有弹出。

下面是我的操作流程:

  • 清除开发者工具的授权数据

  • 使用iPhone进行真机调试(已确认打开微信本身的定位权限 级别为 使用App期间)

  • 进入小程序后查看设置页面 并没有定为相关的选项(即从未执行过定位授权)

  • 进入需要定位的页面 在页面的onShow()里的提前向用户发起授权请求的代码,但未弹出授权框。

  • 点击wx.getLocation()所在的事件的按钮后,直接走了fail()返回内容:{errMsg: "getLocation:fail authorize no response"}(使用安卓手机整体流程也一样但这里报错与iPhone不一致 内容:{errMsg: "getLocation:fail meet frequency limit, please slowdown and try again later"})。

以下是代码片段:

https://image.wxopen.club/content_a54d8b62-4f15-11ea-b16b-001a7dda7111.png

5 回复

工具版本是?

谢邀,你看看微信有定位的权限吗?如果微信都没有,微信内部的小程序,也获取不了

先确定工具里点击:清缓存–清除授权数据,后,还有这种情况。

需要配置app.json文件,



是不是在手机上上拒绝过访问定位,拒绝过的话一段时间内是不会出弹窗,直接返回 fail 的

回到顶部