为优化用户体验,使用 wx.getUserInfo 接口直接弹出受权框的开发方式将逐步再也不支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将没法弹出受权询问框,默认调用失败。会直接进入 fail 回调,在用户已受权的状况下调用此接口,可成功获取用户信息。小程序
开发者可以使用如下方式获取或展现用户信息:微信小程序
1,请使用 <button open-type="getUserInfo"></button> 引导用户主动进行受权操做。缓存
<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">受权登陆</button>
bindGetUserInfo: function(e){ //此处受权获得userInfo console.log(e.detail.userInfo); //接下来写业务代码 app.globalData.userInfo = e.detail.userInfo; //最后,记得返回刚才的页面 wx.navigateBack({ delta: 1 }) }
2,调用接口函数wx.getUserInfo时:微信
1)当用户未受权过,调用该接口将直接报错,会直接进入 fail 回调
2)当用户受权过,能够使用该接口获取用户信息app
wx.getUserInfo({ withCredentials: true, success: function (res) { //此处为获取微信信息后的业务方法,存入缓存 wx.setStorageSync("userInfo", res.userInfo); }, fail: function () { //获取用户信息失败后。请跳转受权页面 wx.showModal({ title: '提醒', content: '还没有进行受权,请点击肯定跳转到受权页面进行受权。', success: function (res) { if (res.confirm) { //跳转到受权界面 wx.navigateTo({ url: '/pages/login/login', }) } } }) } })
微信小程序案例:函数
我和怪兽有个合影优化