小程序初探之三-一个定位bug

·  阅读 798

叫醒我的不是梦想,是bug

问题描述: 小程序里的定位功能不能唤起地图,一直在确认授权之间来回切。

遇到同样问题的同学,如果着急,直接看最后一段即可。

早上被产品同学呼叫,说小程序因为定位功能出了问题不能下单了。

赶紧打开电脑,查看小程序更新日志:

客户端 7.0.0 新增配置
A 新增 框架 支持页面级自定义导航配置 navigationStyle: custom 详情
A 新增 框架 支持页面禁止右滑返回手势 disableSwipeBack: true 详情
A 新增 框架 如需使用位置接口,需在 app.json 中添加配置 permission
字段用于说明位置接口用途

以为自己很快找到问题,在app.json添加好了配置:

 "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于推荐距离最近的订单"
    }
  }
复制代码

发现问题还是不断复现,且只有部分手机有问题。

赶紧拿过来问题机真机调试,发现有段代码没有执行,

 wx.openSetting({
      success: function (settingRes) {
        if (settingRes.authSetting['scope.userLocation']) {
          wx.getLocation({
            type: 'gcj02',
            success: function (res) {
              let {
                latitude,
                longitude
              } = res
              that.globalData.iSlocation = true
              that.globalData.latitude = latitude
              that.globalData.longitude = longitude
              callBack && callBack()
            }
          })
        } else {
        }
      }
    })
复制代码

获取授权配置一切正常,settingRes.authSetting['scope.userLocation']true, 但是

wx.getLocation({
            type: 'gcj02',
            success: function (res) {
              let {
                latitude,
                longitude
              } = res
              that.globalData.iSlocation = true
              that.globalData.latitude = latitude
              that.globalData.longitude = longitude
              callBack && callBack()
            }
          })
复制代码

根本不执行。

突然想死。但是内心强大的程序媛不能放弃哈。 接着调试,点问题机的扫一扫不小心点成了摇一摇。

这时候,奇迹出现了

摇一摇页面出现了定位提醒,这个应该是微信的定位授权,点了同意。

然后,再点开我的小程序,问题不出现了!!

所以,我在想,小程序是基于微信的,小程序虽然授权了位置信息,但是微信的位置授权因为某种原因(升级?清除缓存?)失效了。这时候小程序的也不能用。 小程序的位置授权是依赖微信的位置授权的?只能这样猜一下了。

吐槽一下,小程序的文档真的写的挺糊弄的。

小程序初探之二

分类:
阅读
标签:
收藏成功!
已添加到「」, 点击更改