1、原因
微信规则更新:添加链接描述
2、现象:
按照之前的获取方法登录后如图所示:
3、解决方法:
a、老代码中登录流程:
<view class="userinfo" wx:if="{{authSetting}}">
<open-data class="userinfo-avatar" type="userAvatarUrl" ></open-data>
<open-data class="userinfo-nickname" type="userNickName" lang="zh_CN"></open-data>
</view>
<view class="userinfo" wx:else bindtap="userLogin">
<image class="userinfo-avatar" src="../../img/user.png"></image><text class="loginfont">点击登录</text>
</view>
当用户未登录的时候,显示系统默认图片做为头像。并绑定userLogin触发打开登录页面。登录页面中的触发点击微信快速登录,触发登录事件:
<button type="primary" class='button' plain="true" bindtap="url">暂不登录</button>
<button type="primary" open-type="getUserInfo" class='button' bindgetuserinfo="bindLogin" >微信快速登录</button>
bindLogin: function (res) {
// 声明一个变量接收用户授权信息
var userinfo = res.detail.userInfo;
},
b、更改后的登录流程:
头像显示部分代码:
<view class="userinfo" wx:if="{{authSetting}}">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}"></image><text class="loginfont">{{userInfo.nickName}}</text>
</view>
<button type="primary" class='button' plain="true" bindtap="url">暂不登录</button>
<button type="primary" class='button' bindtap="getUserProfile" >微信快速登录</button>
getUserProfile: function(){
wx.getUserProfile({
desc: '用户完善会员资料',
success: (res) => {
// 保存用户信息到本地缓存,供后续读取使用
wx.setStorageSync("userInfo",res.userInfo);
}
})
},
在onLoad添加读取本地存储的userInfo赋值到userInfo变量即可。