飞道的博客

微信小程序获取用户头像和昵称(头像昵称填写能力)

557人阅读  评论(0)

开放能力调整公告

总体来说就是通过按钮来授权获取用户基础信息的能力都没啦(wx.getUserProfile,wx.getUserInfo都不行了),都要使用新版本的 【头像昵称填写能力】啦。
小程序用户头像昵称获取规则调整公告

获取头像

  • 获取头像代码

    wxxl部分

    <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
      <image class="avatar" src="{
         {avatarUrl}}"></image>
    </button> 
    

    js部分

    Page({
         
      data: {
         
        avatarUrl: defaultAvatarUrl,
      },
      onChooseAvatar(e) {
         
        const {
          avatarUrl } = e.detail 	//获取图片临时路径
        this.setData({
         
          avatarUrl,
        })
      }
    })
    

适配头像时需要注意的地方

  • 此时获取到的头像路径为本地路径,虽然可以在页面上显示,但是并不能直接入库使用,浏览器上是访问不到的。需要上传到我们自己的服务器,后面每次使用都从我们自己的服务器上取。 其实说白了就是之前头像文件我们都是从微信服务器获取的,现在需要去我们自己的服务器获取了。

     wx.uploadFile({
         
       url: '我们自己的服务器地址', //仅为示例,非真实的接口地址
       filePath: '图片临时路径',
       name: 'uploadFile',	//自定义name
       success(res) {
         
         console.log('res', res);	//经自己服务器存储后,将地址返回到客户端。
       },
       fail(err) {
         
         console.log('err', err);
       },
       complete(cp) {
         
         console.log(cp);
       }
     })
    

获取昵称

  • 获取头像代码,将input中的“type”属性设置为‘nickname’,同时对"name"属性设定值,点击提交按钮后根据设置的name值获取对应的value。
 <form bindsubmit="getUserName"> <!--定义提交事件-->
   <view class="cu-form-group">
        <view class="title">昵称:</view>
        <input placeholder="请输入昵称" type="nickname" name="nickname" maxlength="32"></input>
 	</view>
 	<view class="up-bt">
        <button form-type="submit" role="button" aria-disabled="false" class="save-bt cu-btn block bg-blue margin-tb-sm lg">更新资料</button>
      </view>
 </form>
  • js部分
  getUserName(e) {
   
    console.log(e.detail.value.nickname);  //用户输入或者选择的昵称
  },

获取昵称需要注意的地方

  • 用户输入或者选择昵称时,会异步对用户输入的内容进行安全监测,若未通过安全监测,微信将清空用户输入的内容,建议开发者通过 form 中form-type 为submit 的button 组件收集用户输入的内容。

转载:https://blog.csdn.net/qq_38880700/article/details/127999940
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场