问题描述: 小程序里的定位功能不能唤起地图,一直在确认受权之间来回切。git
遇到一样问题的同窗,若是着急,直接看最后一段便可。json
早上被产品同窗呼叫,说小程序由于定位功能出了问题不能下单了。小程序
赶忙打开电脑,查看小程序更新日志:缓存
客户端 7.0.0 新增配置
A 新增 框架 支持页面级自定义导航配置 navigationStyle: custom 详情
A 新增 框架 支持页面禁止右滑返回手势 disableSwipeBack: true 详情
A 新增 框架 如需使用位置接口,需在 app.json 中添加配置 permission
字段用于说明位置接口用途bash
觉得本身很快找到问题,在app.json添加好了配置:微信
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于推荐距离最近的订单"
}
}
复制代码
发现问题仍是不断复现,且只有部分手机有问题。app
赶忙拿过来问题机真机调试,发现有段代码没有执行,框架
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
, 可是post
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()
}
})
复制代码
根本不执行。ui
忽然想死。可是心里强大的程序媛不能放弃哈。 接着调试,点问题机的扫一扫不当心点成了摇一摇。
这时候,奇迹出现了。
摇一摇页面出现了定位提醒,这个应该是微信的定位受权,点了赞成。
而后,再点开个人小程序,问题不出现了!!
因此,我在想,小程序是基于微信的,小程序虽然受权了位置信息,可是微信的位置受权由于某种缘由(升级?清除缓存?)失效了。这时候小程序的也不能用。 小程序的位置受权是依赖微信的位置受权的?只能这样猜一下了。
吐槽一下,小程序的文档真的写的挺糊弄的。