前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序自定义头像昵称

小程序自定义头像昵称

作者头像
yma16
发布2023-11-16 15:58:47
2160
发布2023-11-16 15:58:47
举报
文章被收录于专栏:前端javascript前端javascript

背景

由于个人小程序获取用户授权getUserProfile的方法已失效,所以采用自定义昵称的方法。

界面效果

实现

视图

图片选择,使用button嵌套img

代码语言:javascript
复制
<button class="avatar-wrapper" 
 style="background: transparent;" 
 open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
    <image class="avatar" class="user-image" src="{{userImageUrl}}"></image>
 </button>

昵称自定义

代码语言:javascript
复制
<view style="width: 50%;text-align: center;">
          <input type="nickname" class="weui-input" value="{{userName}}" bindinput="bindKeyInput"
          placeholder-style="color: #07c160" 
          style="width: 100%;border-bottom: 1px solid #ffffff;" placeholder="{{designPlaceholder}}" />
</view>

逻辑处理

代码语言:javascript
复制
  // 选择头像
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    this.setData({
      userImageUrl: avatarUrl,
    })
  },
  // 输入昵称
  bindKeyInput(e) {
    const { value } = e.detail
    this.setData({
      userName: value
    })
  },

完整视图:

代码语言:javascript
复制
<view class="container">
  <view class="title">{{title}}</view>
  <view class="user-image-box">
    <view wx:if="{{isOldVersion}}">
      <image class="user-image" src="{{userImageUrl}}"></image>
      <view class="user-nick-name">{{userName}}</view>
    </view>
    <view wx:else>
      <button class="avatar-wrapper" style="background: transparent;" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
        <image class="avatar" class="user-image" src="{{userImageUrl}}"></image>
      </button>
      <view style="display: flex;width:100%">
        <view style="width: 30%;text-align: right;">
          {{userPrefix}}
        </view>
        <view style="width: 50%;text-align: center;">
          <input type="nickname" class="weui-input" value="{{userName}}" bindinput="bindKeyInput"
          placeholder-style="color: #07c160" 
          style="width: 100%;border-bottom: 1px solid #ffffff;" placeholder="{{designPlaceholder}}" />
        </view>
      </view>
    </view>

  </view>

  <view class="user-info">
  </view>

  <view class="login-container">
    <button type="primary" plain="true" bindtap="getUserProfile" class="user-login" bindgetuserinfo="getUserInfoBtn" wx:if="{{isOldVersion}}">{{loginTitle}}</button>
    <button type="primary" plain="true" bindtap="joinProfile" class="user-login" wx:else>{{joinTitle}}</button>
  </view>
</view>
<view class="loading-container">
  <view class="loading" wx:if="isloading">
    <view class="loader-child" />
    <view class="loader-child" />
    <view class="loader-child" />
  </view>
</view>
<view class="detail-info">{{detailInfo}}</view>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据结构框架学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档