微信小程序升级后,获取 wx.getUserInfo 接口后续将不再出现授权弹窗,所以需要使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。</strong> <a href="https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01" rel="nofollow" target="_blank">微信小程序与小游戏获取用户信息接口调整说明
1.在页面上创建一个button标签把 open-type
设置为 getUserInfo
代码如下:
<button type="default" open-type="getUserInfo" bindgetuserinfo="getUserInfo">登录</button>
- 1
2.事件getUserInfo的回调函数如下:
getUserInfo: function() { //开启loading框 wx.showLoading({ title: '正在登录...', mask: true }); //调登录api wx.login({ success: res_login => if (res_login.code) { //获取用户信息 wx.getUserInfo({ success: res => { //获取用户的openId wx.request({ url: '后台提供的接口地址', data: { code: res_login.code //传入code参数获取用户的openId }, header: { 'content-type': 'application/json' }, success: res => { //1.存用户信息到本地存储 wx.setStorageSync('userInfo', res.data) //2.存用户信息到全局变量 var app = getApp(); app.globalData.userInfo = res.data //隐藏loading框 wx.hideLoading(); }, fail: res => { wx.showToast({ title: '登录失败', icon: 'none' }) } }) }, }) } } }) },
3.如果用户初次进来点击登录拒绝了授权,应在
wx.getUserInfo
的失败回调函数中兼容此场景,实例代码如下:fail: () => { //隐藏loading框 wx.hideLoading(); //提示用户授权 wx.showToast({ title: '你已拒绝授权,请授权再使用', icon: 'none' }); }