小程序wxml页面
<l-avatar src="{{ avatarUrl }}" l-class="avatar-bg" size="120" icon="{{ avatarIcon }}" icon-style="color:#5bf320" bindtap="getUser"/>
<view>
<text>昵称:{{nickName}}</text>
</view>
js处理页面
// pages/my/my.js
Page({
/**
* 页面的初始数据
*/
data: {
avatarIcon: 'user',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
//页面加载事件,进行获取用户授权信息
let userInfo = wx.getStorageSync('userInfo')
//如果有用户授权信息,进行展示用户信息
if (userInfo) {
this.setData({
...userInfo,
avatarIcon: ''
})
}
},
getUser() {
let userInfo = wx.getStorageSync('userInfo')
if(userInfo){
return
}
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
//第一步要进行存缓存
wx.setStorageSync('userInfo', res.userInfo)
//第二步 请求接口,更新用户基本信息
var token = wx.getStorageSync('token')
wx.request({
url: '',
method: 'POST',
header: {
'Authorization': `Bearer ${token}`
},
data:{
'nickname':res.userInfo.nickName,
'avatar':res.userInfo.avatarUrl
},
success: res => {
console.log(res)
}
})
this.setData({
...res.userInfo,
avatarIcon: ''
})
}
})
},
touchStart(e) {
this.touchStartTime = e.timeStamp;//按下按钮的瞬间
},
touchEnd(e) {
this.touchEndTime = e.timeStamp;//松开按钮的瞬间
},
debounce:function(e){
const that = this;
if (that.touchEndTime - that.touchStartTime < 350) { //防止长按触发点击事件
let currentTime = e.timeStamp; // 当前点击的时间
let lastTapTime = that.lastTapTime;// 当前点击的时间
that.lastTapTime = currentTime;// 更新最后一次点击时间
if (currentTime - lastTapTime > 3000) { // 自定义频繁点击的时间,超出则为频繁点击
console.log('符合非频繁点击事件,please do something');
}
}
},
})