微信小程序获取头像 、填写昵称

获取微信头像昵称的变化

open-type=“getUserInfo” 在2021年4月13日停用
wx.getUserInfo 在2021年4月28日停用
wx.getUserProfile 在2022年11月8日停用

chooseavatar 获取微信头像

wxml代码

<view data-weui-theme="{{theme}}">
  <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
    <image class="avatar" src="{{avatarUrl}}"></image>
  </button> 
  <mp-form>
    <mp-cells>
      <mp-cell title="昵称">
        <input type="nickname" class="weui-input" placeholder="请输入昵称"/>
      </mp-cell>
    </mp-cells>
  </mp-form>
</view>

js代码

	const app = getApp()
	
	const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
	
	
	Page({
	  data: {
	    avatarUrl: defaultAvatarUrl,
	    theme: wx.getSystemInfoSync().theme,
	  },
	  onLoad() {
	    wx.onThemeChange((result) => {
	      this.setData({
	        theme: result.theme
	      })
	    })
	  },
	  onChooseAvatar(e) {
	    const { avatarUrl } = e.detail 
	    this.setData({
	      avatarUrl,
	    })
	  }
	})

获取到头像路径是临时的,需要上传到服务器存成永久地址;

或者转成base64存起来。
调整的公告
https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01

官方文档
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html

### 微信小程序获取和设置用户头像昵称功能 在微信小程序开发中,可以通过微信官方提供的API来实现获取和设置用户的头像昵称功能。如果希望减少对权限的依赖,则可以采用手动方式让用户自行上传头像填写昵称。 以下是两种方法的具体说明: #### 方法一:通过微信API自动获取头像昵称 当用户登录时,可通过 `wx.getUserProfile` 接口获取用户的个人信息(包括头像URL和昵称)。此接口会弹窗提示用户授权[^2]。 ```javascript // 调用微信API获取用户信息 wx.getUserProfile({ desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中 success(res) { const userInfo = res.userInfo; console.log('用户昵称:', userInfo.nickName); console.log('用户头像:', userInfo.avatarUrl); // 将数据存储到本地或服务器 wx.setStorageSync('nickName', userInfo.nickName); wx.setStorageSync('avatarUrl', userInfo.avatarUrl); }, fail(err) { console.error('获取用户信息失败:', err); } }); ``` #### 方法二:手动输入昵称与选择头像 对于不希望通过API直接获取的情况,可以让用户自己输入昵称并通过相册选择图片作为头像。这种方式无需额外权限申请。 ##### 实现步骤: 1. **创建表单页面** 提供一个输入框供用户填写昵称,并提供按钮允许用户从手机相册选取图片。 2. **编写前端逻辑** 使用 `<input>` 和 `<button>` 组件完成界面设计,绑定事件处理函数以捕获用户操作。 3. **后端保存数据** 如果需要持久化存储,可将收集的数据发送至后台服务进行管理。 下面是具体代码示例: ```html <!-- index.wxml --> <view class="container"> <text>请输入您的昵称:</text> <input type="text" placeholder="请输入昵名" bindinput="onNickNameInput"/> <button bindtap="chooseAvatar">选择头像</button> <!-- 展示已选中的头像 --> <image src="{{avatarSrc}}" mode="aspectFit"></image> </view> ``` ```javascript // index.js Page({ data: { avatarSrc: '', // 头像路径 nickName: '' // 昵称 }, onNickNameInput(e) { this.setData({ nickName: e.detail.value }); }, chooseAvatar() { wx.chooseImage({ count: 1, // 只能选择一张图片 sizeType: ['original'], // 图片质量设为原图 sourceType: ['album'], // 来源仅限于相册 success(res) { const tempFilePaths = res.tempFilePaths; // 更新视图显示新头像 this.setData({ avatarSrc: tempFilePaths[0] }); // 存储临时文件路径或其他进一步处理... } }); } }); ``` 以上两部分分别展示了如何利用微信内置API以及纯手工模式达成目标需求[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值