wx.getLocation() 方法的问题
发布于 6 年前 作者 shaojun 16092 次浏览 来自 问答

<button bindtap=‘openSetting’>打开设置</button>

界面中使用了一个按钮,触发 打开设置,在手机端授权后(这里授权了定位),点左上返回后,这时调用wx.getLocation()依然会失败,需要再打开设置界面,再返回,这时才能调用成功(而且偶尔调用成功了,经纬度返回的是0的情况)。而在PC开发时,是可以调用成功的。这应该算是API BUG吧。

这里使用getsetting获取到定位权限后,再去调用location api ,依旧会调用不到。

已经想办法解决了,记录下,可以参考下我的方法:

使用

<button open-type=‘openSetting’ bindopensetting=‘openSetting’>打开设置</button>

在回调中

e.detail.authSetting[“scope.userLocation”]

当true 时就调用。

上传到体验版才会生效。折腾了好半天。坑啊。

3 回复

这个。。官方回了。。openSetting设值这个。。是异步到微信服务器的。。所以立即返回后使用,没权限。。

就算setsetting()是异步的接口,那么我调用 了getsetting()  返回了已经授权,那么这时调用wx.getlocation() 为啥也会错误呢?

这确定不是你返回太快了,系统设置数据还没刷新

回到顶部