收藏
回答

wx.getLocation() 方法的问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.getLocation() 客户端 6.7.3 2.4


<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 时就调用。

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


最后一次编辑于  2018-11-20  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • yhysir
    yhysir
    2018-11-20

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

    2018-11-20
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-11-20

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

    2018-11-20
    赞同
    回复 3
    • yhysir
      yhysir
      2018-11-20

      请问有那个官方回复的链接吗?应该会有个回调什么的吧,不然这种业务情景下,岂不实现不了了。

      2018-11-20
      回复
    • 卢霄霄
      卢霄霄
      2018-11-20回复yhysir

      官方也没说怎么弄。。你试试getLocation失败的时候再来一次呢。。

      我去给你找链接。。虽然官方也没说啥。。稍等

      2018-11-20
      回复
    • 卢霄霄
      卢霄霄
      2018-11-20回复yhysir

      https://developers.weixin.qq.com/community/develop/doc/000c0cc59ac7b8ecf997df3b65b000?highLine=getLocation

      2018-11-20
      回复
  • ==
    ==
    2018-11-20

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

    2018-11-20
    赞同
    回复 7
    • yhysir
      yhysir
      2018-11-20回复🌪 🌪 🌪

      你找我的是哪个QQ,没有看到有消息哎

      2018-11-20
      回复
    • ==
      ==
      2018-11-20回复🌪 🌪 🌪

      我???

      2018-11-20
      回复
    • 🌪 🌪 🌪
      🌪 🌪 🌪
      2018-11-20回复==

       是呀

      2018-11-20
      回复
    • 🌪 🌪 🌪
      🌪 🌪 🌪
      2018-11-20回复yhysir

       不是找你....

      2018-11-20
      回复
    • 🌪 🌪 🌪
      🌪 🌪 🌪
      2018-11-20回复==

       昨天就找你了 你没回

      2018-11-20
      回复
    查看更多(2)