<open-data type="userAvatarUrl"></open-data>
之前是使⽤open-data获取昵称和头像,但是更新之后,⼩程序不再⽀持使⽤该⽅法
现在需要⽤wx.getUserProfile这个API获取⽤户信息。页⾯产⽣点击事件(如 button 上 bindtap 的回调中)后才可调⽤,每次请求都会弹出授权窗⼝,⽤户同意后返回 userInfo。该接⼝⽤于替换 wx.getUserInfo。
官⽅例⼦:
获取⽤户信息按官⽅的来即可。但是在登录⼩程序获取⼀次后我们需要把⽤户信息存起来,不能点击⼀次获取⼀次。
wxml⽂件:
<image class="userinfo-avatar" src="{{avatarUrl}}"></image>
<text class="userinfo-nickname" bindtap="getUserProfile">{{nickName}}</text>
js⽂件:
data:{
avatarUrl:"/utils/img/wdltx.png",//这⾥放了⼀张灰⾊头像图⽚
nickName:"点击获取头像和昵称",//⽤户昵称
}
getUserProfile(){
desc: '登录', // 声明获取⽤户个⼈信息后的⽤途,后续会展⽰在弹窗中,请谨慎填写
success: (res) => {
this.setData({
nickName: res.userInfo.nickName,
avatarUrl: res.userInfo.avatarUrl
})
wx.setStorage({ //数据缓存⽅法
key: 'nickName', //关键字,本地缓存中指定的key
data: res.userInfo.nickName, //缓存⽤户公开信息,
success: function() { //缓存成功后,输出提⽰
console.log('写⼊nickName缓存成功')
},
fail: function() { //缓存失败后的提⽰
console.log('写⼊nickName发⽣错误')
}
})
wx.setStorage({ //数据缓存⽅法
key: 'avatarUrl', //关键字,本地缓存中指定的key
李沁身高data: res.userInfo.avatarUrl, //缓存⽤户公开信息,
success: function() { //缓存成功后,输出提⽰
console.log('写⼊avatarUrl缓存成功')
},
fail: function() { //缓存失败后的提⽰
console.log('写⼊avatarUrl发⽣错误')
}
})
}
})
地址},
这样数据就缓存成功了。需要注意的是,使⽤的缓存⽅法wx.setStorage,那对应的获取数据时也要⽤wx.getStorage。如何获取缓存数据:
其他页⾯js:
通信工程专业就业前景如何data{
nickName:"",
avatarUrl:"",
}
key: 'nickName',
success (res) {
that.setData({
nickName:res.data
笔记本电脑无线上网设置})
}
陆树铭身高})
key: 'avatarUrl',
success (res) {
that.setData({
avatarUrl:res.data
})
}
})
这样就可以啦
发布评论