快速切换tab导致wx.getSetting拿不到已经授权的信息
有三个tab页:home、product、 center。每个tab页的onShow都有下面这段代码
onShow: function () { // 授权用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权用户信息,不再弹出自定义授权弹框 this.setData({ authInfoDlg: false }) } else { // 没有授权,弹出自定义授权弹框 this.setData({ authInfoDlg: true }) } } })} |
authInfoDlg 控制一个自定义授权弹框,下面是这个弹框的部分代码。
<button class='auth-dlg-btn btn-solid-org' open-type="getUserInfo" lang='zh_CN' bindgetuserinfo="_getUserInfo">点击授权</button>_getUserInfo (e) { if (e.detail.userInfo) { console.log(e) // 关闭自定义授权弹框 this.setData({ authInfoDlg: false }) // 保存unionId let { rawData: raw_data, signature, encryptedData: encrypted_data, iv } = e.detail wx.$ajax('user/saveUserUnionId', { raw_data, signature, encrypted_data, iv }) if (this.authSuccess) { this.authSuccess(); } } } |
当进入到首页时,弹出自定义
授权弹框(图一),点击授权,调起微信用户信息授权弹框(图二),点击允许。授权之后,除非手动清除授权信息,这个自定义授权弹框不该再出现。 但是,当我快速切换tab,这个自定义授权弹框居然会出现,而且,授权信息为空(见下图),这是为何???
