收藏
回答

wx.getLocation的小问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.getLocation 客户端 6.7.2 2.3.0

- 当前 Bug 的表现(可附上截图)

第一次弹窗让用户授权并被用户拒绝后,用户点击<button open-type="openSetting" bindopensetting="openSetting">授权登录</button>去授权,用户授权后返回再调用wx.getLocation时,第一次会走fail(这时使用wx.getSetting打印出来的结果为{scope.userLocation: true}),打印出来的err为{errMsg: "getLocation:fail auth deny"},第二次再调用wx.getLocation正常走success,在模拟器上没问题,真机和线上有这问题。


最后一次编辑于  2018-10-01
回答关注问题邀请回答
收藏

4 个回答

  • 林帅帅
    林帅帅
    2018-10-10

    目前的解决方法是

    setTimeout(()=>{

       wx.getLocation({

            ..........

       });

    }, 100);

    2018-10-10
    有用 1
    回复 2
    • yhysir
      yhysir
      2018-11-20

      我尝试过了,还是没有用。就算放在了getsetting()中回调中也没法调用成功

      2018-11-20
      回复
    • 林帅帅
      林帅帅
      2018-11-22回复yhysir

      我这边测试过是可行的,请查看下你写的代码。

      2018-11-22
      回复
  • 白开水
    白开水
    2018-12-12

    弹窗后用户授权行为应该也是个异步操作;导致在真机上立刻调用getLocation会触发fail回调(模拟器没有这个现象);

    我采取方式和楼主一样;只不过我设置的是1000毫秒;

    setTimeout(()=>{

       wx.getLocation({

            ..........

       });

    }, 1000);



    2018-12-12
    有用
    回复
  • 袋盐
    袋盐
    2018-11-14

    +1,允许授权后立即调用getLocation返回失败getLocation:fail auth deny

    2018-11-14
    有用
    回复
  • 卢霄霄
    卢霄霄
    2018-10-01

    getLocation的失败回调里。。再来一发呢?

    2018-10-01
    有用
    回复 1
    • 林帅帅
      林帅帅
      2018-10-01

      那样可以,就授权回来的第一次不行。

      2018-10-01
      回复
登录 后发表内容