問題描述: 小程序裏的定位功能不能喚起地圖,一直在確認受權之間來回切。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
忽然想死。可是心裏強大的程序媛不能放棄哈。 接着調試,點問題機的掃一掃不當心點成了搖一搖。
這時候,奇蹟出現了。
搖一搖頁面出現了定位提醒,這個應該是微信的定位受權,點了贊成。
而後,再點開個人小程序,問題不出現了!!
因此,我在想,小程序是基於微信的,小程序雖然受權了位置信息,可是微信的位置受權由於某種緣由(升級?清除緩存?)失效了。這時候小程序的也不能用。 小程序的位置受權是依賴微信的位置受權的?只能這樣猜一下了。
吐槽一下,小程序的文檔真的寫的挺糊弄的。