小程序授权用户个人信息流程

小程序社区的提问

快速切换tab导致wx.getSetting拿不到已经授权的信息

业务场景

我们的授权流程是:在用户进入小程序的时候就让用户授权用户基本信息。虽然小程序官方建议在需要用户的昵称、头像等信息的时候再去让用户授权。

授权变动

由于小程序将授权用户基本信息改成了只能通过button调用,所以在此次小程序的开发中,我们自定义了一个授权弹框(图一),通过弹框上的【点击授权】按钮去调用微信授权弹框(图二)。

自定义授权弹框:

clipboard.png

微信授权弹框:

clipboard.png

实现

方案1:在tabbar页和具有分享功能的页面的onShow中调用wx.getSetting判断是否已经授权,如果已经授权,隐藏自定义授权弹框;否则,显示自定义授权弹框。代码如下:

小程序片段1: wechatide://minicode/a1GSyHmP7o10

存在的问题:在已经授权用户信息的情况下快速切换tab会出现wx.getSetting返回的res.authSetting['scope.userInfo']为空的情况,从而导致自定义授权弹框的显示。但此时点击自定义授权中的【点击授权】按钮又不能调起微信授权弹框,因为之前已经授权过了。猜测是因为频繁调用wx.getSetting的原因。

方案2:在tabbar页的onLoad中调用wx.getSetting,这样就避免了切换tabbar的时候频繁调用wx.getSetting。然后将是否授权的信息(authInfoDlg)存在全局,在tabbar页的onShow中根据authInfoDlg确定是否显示自定义授权弹框。代码如下:

小程序片段2: wechatide://minicode/N4Yz4WmK7W43

猜你喜欢

转载自www.cnblogs.com/jlfw/p/12707043.html