wx.getLocation的小问题
发布于 6 年前 作者 yanglong 4372 次浏览 来自 问答
  • 当前 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,在模拟器上没问题,真机和线上有这问题。

4 回复

目前的解决方法是

setTimeout(()=>{

   wx.getLocation({

        …

   });

}, 100);

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

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

setTimeout(()=>{

   wx.getLocation({

        ..........

   });

}, 1000);


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

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

回到顶部