微信小程序使用头像昵称填写完成头像上传

这篇具有很好参考价值的文章主要介绍了微信小程序使用头像昵称填写完成头像上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

去年微信调整了用户信息获取的api后,现在获取用户头像和昵称只能通过用户自己触发组件拿到用户信息,那到底怎么做呢,下面跟大家分享一下我是怎么做的(新手,请多多包涵,有问题欢迎指出)

微信小程序使用头像昵称填写完成头像上传
微信小程序使用头像昵称填写完成头像上传

wxml:

<view class="top">
    <button class="avatar-wrapper" 
	    open-type="chooseAvatar" 
	    bind:chooseavatar="onChooseAvatar"
    >
      <image class="avatar" src="{{avatarUrl}}"></image>
    </button> 
    <van-icon name="edit"  class="edit" />
    <input type="nickname" 
	    class="weui-input"  
	    placeholder="微信用户"  
	    bind:change="getNickname" 
	    maxlength="10" 
	    value="{{username}}"/>
  </view>

js:文章来源地址https://www.toymoban.com/news/detail-507362.html

// 后端接口
import {getUserInfo,updateUserInfo,uploadPhoto} from '../api/profile/profile.js'

// 默认头像
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 默认头像
    avatarUrl: defaultAvatarUrl,
    // 用户昵称
    username:null,
    openId:null,
    userId:null
  },
  // 头像上传
  onChooseAvatar(e){
  	// 回调事件返回的是图片的临时地址,会失效,我们需要调自己的上传接口拿到图片信息渲染到页面
    console.log(e.detail);
	    let avatarUrl  = e.detail.avatarUrl
	    let openId = this.data.openId;
	    this.setData({
	      avatarUrl,
	    })
    wx.uploadFile({
      url: "http://192.168.x.xx.xxxx:/users/uploadImage",  // 这里换成你们后端的上传接口即可
      method: 'POST',
      filePath: avatarUrl,
      name: 'file',
      formData: {
        openId: openId  // 这里放你们接口所需要的参数
      },
      // 成功回调
      success:(res)=>{
        let result = JSON.parse(res.data); // JSON.parse()方法是将JSON格式字符串转换为JSON对象
        let newAvatarUrl = result.data[0].url; // 返回的图片url
        let userId = this.data.userId;
        // 将返回的url替换调默认的url,渲染在页面上
        this.setData({
          avatarUrl:newAvatarUrl  
        })
        /*
        	* 下面调保存头像信息的接口(具体实现根据你们实际开发的需求)
        */
          let fileInfo = {
            userId:userId,
            fileName:result.data[0].name,
            fileUrl:result.data[0].url,
            filePath:result.data[0].path,
          }
          uploadPhoto(fileInfo).then(res=>{
            console.log(res);
          })
      },
  });
  },
  // 用户昵称
  getNickname: function (e){
    let input = e.detail.value
    this.setData({
      username: input 
    })
    // 修改用户昵称
    let user = {
      openId: this.data.openId,
      userName: this.data.username
    }
    updateUserInfo(user).then(res=>{
      this.queryInfo();
    })
  },
  // 查询用户信息
  queryInfo(){
    let openId = wx.getStorageSync('login_info').openid
    this.setData({
      openId : openId
    })
    getUserInfo(openId).then(res=>{
      console.log('查询用户信息',res);
      if (res.data.code == 200) {
      // 将查询到用户头像、昵称等信息覆盖默认值,然后渲染到页面即可
        this.setData({
        username: res.data.data.userName,
        userId:res.data.data.userId,
        avatarUrl:res.data.data.fileUrl
      })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  // 页面加载完毕之后查询用户信息
   this.queryInfo();
  },
})

到了这里,关于微信小程序使用头像昵称填写完成头像上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序上传头像和昵称持久化保存

    因为通过微信头像昵称填写功能获取到头像是一个临时头像,这个url只能一段时间内在微信访问,并且无法在公网访问这个url。所以非常有必要把这个url转成我么实际可用的头像到数据库中。让头像持久化的在微信和公网任何位置都能访问。 这里我们使用url转base64字符串的方

    2024年02月12日
    浏览(29)
  • 使用的uview 微信高版本 头像昵称填写能力

     效果    参考的这个  微信小程序头像昵称填写能力-CSDN博客 因为之前用的getUserProfile,有一天发现它获取到的头像是灰色,昵称是微信用户,一看官网说是不用了,低版本的还能用,高版本的要用头像昵称填写来实现。 如下是我的小程序登录页面代码: 逻辑:当小程序判

    2024年01月19日
    浏览(19)
  • 修复微信小程序不能获取头像和昵称的bug,微信小程序新版头像昵称API使用

    大厂程序员都是有KPI绩效考核的,所以他们不能闲着,每天要想着怎么优化程序代码、怎么满足奇葩用户的需求,所以苦逼了我们这些小公司程序员,微信一个小小的API接口改动,可能就让一个小公司因此损失惨重,甚至直接面临倒闭。鹅厂可不管你这些小公司的死活,毕竟

    2024年02月11日
    浏览(47)
  • 最新微信小程序获取头像昵称,直接用,uniapp获取微信小程序头像昵称

    微信小程序获取用户头像和昵称一个开放接口是wx.getUserInfo,2021年4月5日被废弃,原因是很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户,后面新

    2024年02月11日
    浏览(29)
  • Uniapp写微信小程序时,如何获取用户头像和昵称使用微信用户信息登录?

    实现效果如下: 首先使用uni.login获取用户登录凭证code: 官方代码: success返回参数如下: 头像选择: 需要将 button 组件  open-type  的值设置为  chooseAvatar ,当用户选择需要使用的头像之后,可以通过  bindchooseavatar  事件回调获取到头像信息的临时路径。 从基础库2.24.4版本

    2024年02月04日
    浏览(37)
  • 微信小程序获取昵称,头像

    1,昵称:使用到的是微信小程序文档里的api input框的type值设置为nickname,再使用双向绑定的方法拿到值 这个方法点击input框的时候它会弹出你当前的微信名称,基础库版本较低的话电脑上无法显示,只能在真机调试上显示 2,头像 点击按钮底部弹出自己的头像,也可以上传新

    2024年02月12日
    浏览(34)
  • 微信小程序更改头像昵称

    目录 背景 解决思路 前面写了一篇关于小程序头像昵称获取更改的方案,有很多小伙伴私信我发一个整体的逻辑思路! 前面的这篇文章中我们给出了页面中获取头像昵称的代码: 上方代码中我们可以很清晰的看到用户的头像和昵称,使用button和input输入框来填充或者更改的。

    2024年02月09日
    浏览(33)
  • 微信小程序获取用户头像昵称

    微信小程序是一种基于微信开发平台的轻应用,用户可以通过微信扫码、搜索等方式进入小程序并使用。在小程序中,获取用户昵称和头像是非常常见的需求,因为这些信息可以用来个性化展示内容,提高用户体验。以下是获取用户头像昵称的传统方法: 在小程序中,可以通

    2024年02月07日
    浏览(44)
  • 微信小程序最新获取头像昵称方式

      前言 版本历史变迁 一、获取头像的正确姿势 二、获取昵称的正确姿势 总结 产品需要获取微信用户的昵称和头像。 这这还不简单,so easy! 通过 wx.getUserProfile 或者  wx.getUserInfo  就可以获取到。 但是获取的昵称是”微信用户“获取的头像是灰色的头像。 如果你也是上面这

    2024年02月13日
    浏览(28)
  • 微信小程序如何获取用户头像昵称

        微信小程序登录用户头像昵称已经不支持支持获取,因为用户的scope.userInfo权限已经回收,可以使用昵称头像填写进行完善用户信息,按照官方推荐会显示用户在微信的头像和昵称,本文介绍一下实现方案.最终实现效果:修改头像会默认显示微信头像,修改昵称时会默认显示

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包