编程语言
首页 > 编程语言> > 微信小程序实现获取用户高清头像

微信小程序实现获取用户高清头像

作者:互联网

微信小程序实现获取用户高清头像

获取用户高清头像的需求:

获取用户头像的实现:

获取用户高清头像

效果示意图:
在这里插入图片描述
代码:

wxml

<view class="weui-tab__content">
    <view class="container-body">
        <image class="image" src="{{bgPic}}" ></image>
        <button class='button' bindtap="getavatar" open-type="getUserInfo" bindgetuserinfo="getUserInfo" type="submit">获取头像</button>
    </view>
</view>

js

const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    imageUrl: null,
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  onl oad: function() {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function (e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  getavatar: function(){
    var that=this;
    wx.downloadFile({
      url: this.data.userInfo.avatarUrl,
      success: function(res){
        console.log(res)
        that.setData({
          bgPic: headimgHD(app.globalData.userInfo.avatarUrl)
        })
      }
    })
  }
})
function headimgHD (imageUrl) {
  imageUrl = imageUrl.split('/');        //把头像的路径切成数组
  //把大小数值为 46 || 64 || 96 || 132 的转换为0
  if (imageUrl[imageUrl.length - 1] && (imageUrl[imageUrl.length - 1] == 46 || imageUrl[imageUrl.length - 1] == 64 || imageUrl[imageUrl.length - 1] == 96 || imageUrl[imageUrl.length - 1] == 132)) {
      imageUrl[imageUrl.length - 1] = 0;
  }
  imageUrl = imageUrl.join('/');   //重新拼接为字符串
  return imageUrl;
}

在Page()外建立子函数—headimgHD()来将获取到的头像进行修改后返回高清头像。此例子是通过点击按钮获取用户头像,所以在自定义函数getavatar()中调用headimgHD();如果想实现进入该页面自动获取高清头像,则需要在onload()函数里面完成调用。

wxss

.weui-tab__content{
  width: 100%;
  height: 100%;
  text-align: center;
}
.container-body {
  padding-top: 120rpx;
}
.image {
  width: 500rpx;
  height: 500rpx;
  border: 12rpx solid white;
  border-radius: 5%;
}

标签:获取,程序实现,微信,imageUrl,高清,头像,userInfo,app
来源: https://blog.csdn.net/ALKAO_UA/article/details/106480574