onShow() {
this.demo()
},
async demo() {
console.log('index - onShow() - start')
// wx.getSetting({
// withSubscriptions: true,
// success: res => {
// console.log('🚩 getSetting 成功:', res)
// },
// fail: err => {
// console.log('🚩 getSetting 失败:', err)
// },
// complete: res => {
// console.log('🚩 getSetting 完成:', res)
// }
// })
const a = await wx.getSetting()
console.log('index - onShow() - end')
}
复现步骤(企微安卓):
- 手机企微位置权限: 允许
- 打开企微小程序, log 正常: index - onShow() - start --> index - onShow() - end
- 手机设置中关闭企微位置权限
- 多任务切换回小程序, 会自动重新进入小程序
- 此时, log 不正常: 只有 index - onShow() - start, 没有 index - onShow() - end. 即 await wx.getSetting() 后面的代码没有执行
自动进入小程序后, getSetting() 出现问题, 手动关闭再打开小程序即可恢复正常
微信小程序无此问题, 微信的位置权限被关闭后, 多任务切换回小程序后, 小程序会自动关闭, 用户重新打开小程序后, getSetting() 工作正常
企微小程序 iOS 也无此问题
使用回调形式, 表现为不走任何回调; 使用 await 形式, 变现为 '阻塞' 代码执行