微信小程序更新api后,wx.getUserInfo在开发和体验版本都不能弹出授权窗口。微信小程序文档说明:
注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type=”getUserInfo”></button> 引导用户主动进行授权操作
- 当用户未授权过,调用该接口将直接报错
- 当用户授权过,可以使用该接口获取用户信息
对此,给出以下解决方案。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
wx.getUserInfo({ withCredentials: true, success: function(res) { //此处为获取微信信息后的业务方法 }, fail: function() { //获取用户信息失败后。请跳转授权页面 wx.showModal({ title: '警告', content: '尚未进行授权,请点击确定跳转到授权页面进行授权。', success: function(res) { if (res.confirm) { console.log('用户点击确定') wx.navigateTo({ url: '../tologin/tologin', }) } } }) } }) |
调取该方法失败后跳转到授权页面。
授权页面加入
0 |
<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button> |
并在js中,加入这个方法
0 1 2 3 4 5 6 7 8 9 10 11 |
bindGetUserInfo: function(e){ var that = this; //此处授权得到userInfo console.log(e.detail.userInfo); //接下来写业务代码 //最后,记得返回刚才的页面 wx.navigateBack({ delta: 1 }) } |
至此,即可完成引导用户手动授权的过程。解决此次更新api所带来的问题。