有三个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,这个自定义授权弹框居然会出现,而且,授权信息为空(见下图),这是为何???
官方迟迟没有答复,我改了一种实现方式,参考https://segmentfault.com/a/1190000015650591中的小程序片段2
这个问题我们也遇到了,用的是官方推荐的代码:
wx.getSetting({
success: function (res) {
console.log(res)
if (res.authSetting[ 'scope.userInfo' ]) {
that.setData({
isauthorizationShow: true
})
} else {
that.setData({
isauthorizationShow: false
})
}
}
})
自己做了一个授权的弹窗,然后判断用户是否授权过,未授权就显示,
但是问题就是明明授权了,但是过一会后(未退出小程序),在其他页面突然弹出了自己做的授权框,
退出从进就好了,
希望官方尽快给一个回复~
官方迟迟没有答复,我改了一种实现方式,参考https://segmentfault.com/a/1190000015650591中的小程序片段2
同问~
你好,麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
wechatide://minicode/a1GSyHmP7o10 希望能及时给予答复。 下面的这个提问,我也写了代码片段,但是还没答复。麻烦看一下。https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=354769141&docid=000e607bc9cd804b43f60594f51400