• 小程序最新获取用户头像昵称


    目录

    一、前言

    二、遇到的问题

    三、效果页面

    四、代码实现


    记录:

    一、前言

     昨天打开编辑器后,发现小程序用户的头像与昵称都给变默认了,就去网上搜了一下:

    小程序用户头像昵称获取规则调整公告 | 微信开放社区   

    我去,居然给改了,之前一直按照接口的方法来写的,还有很多页面要用到用户头像昵称信息。

    没办法,只有去改了...... 

    二、遇到的问题

    文档:头像昵称填写 | 微信开放文档

    变成填写这样了:直接用文档给的代码的话,开始用的很爽,但当我复制到开发者工具上后,发现了一些问题:

    •  原代码样式用的 WeUI,我没有用。

    • input 直接填写微信名时,获取不到昵称信息。

    • 获取的头像地址是临时的!

    这样搞就有点麻烦了,最后用 form 来收集头像昵称信息,对于头像地址的临时性,存在缓存好像可以用,当然最好的办法就是直接将用户头像、昵称传的自己的服务器上。

    三、效果页面

    效果页面:

    四、代码实现

     代码:

    • WXML
    1. <view class="t1">
    2. <text>欢迎~~text>
    3. <view class="t2">
    4. <text>点击完善头像、昵称信息text>
    5. view>
    6. view>
    7. <form bindsubmit="login">
    8. <button class="avatar-wrapper" plain="true" open-type="chooseAvatar" name='avatarUrl' bind:chooseavatar="onChooseAvatar">
    9. <image class="avatar" src="{{avatarUrl}}">image>
    10. button>
    11. <view class="ttt">
    12. <text class="nichen">昵称:text>
    13. <input type="nickname" name='nickName' class="weui-input" placeholder="请输入昵称" />
    14. view>
    15. <button form-type="submit" class="sure">点击确认button>
    16. form>
    17. <view class="statement">
    18. <checkbox bindtap="select" value="cb" />
    19. <text bindtap="gotoBook">已阅:用户条款&&隐私策略text>
    20. view>
    •  WXSS
    1. /* 去掉button边框 */
    2. .avatar-wrapper {
    3. border: none !important;
    4. margin-top: 40rpx;
    5. }
    6. .avatar-wrapper {
    7. background-color: #ffffff;
    8. }
    9. .weui-input {
    10. color: #ffffff;
    11. margin-left: 60rpx;
    12. text-align: left;
    13. }
    14. .avatar {
    15. width: 100rpx;
    16. height: 100rpx;
    17. display: flex;
    18. margin: 0 auto;
    19. }
    20. .ttt {
    21. margin: 20rpx;
    22. }
    23. .nichen {
    24. float: left;
    25. color: white;
    26. font-weight: bold;
    27. margin-right: 40rpx;
    28. }
    29. .t1 {
    30. margin-left: 20rpx;
    31. margin-top: 450rpx;
    32. font-weight: bold;
    33. font-size: 42rpx;
    34. margin-bottom: 30rpx;
    35. color: white;
    36. }
    37. .t2 {
    38. margin-top: 20rpx;
    39. }
    40. .t2 text {
    41. opacity: 0.8;
    42. font-weight: lighter;
    43. color: white;
    44. font-size: 30rpx;
    45. }
    46. page {
    47. background-image: url('https://636c-cloud1-7g1a0u3je2bf6f8d-1314056523.tcb.qcloud.la/%E7%A7%BB%E9%80%9A%E5%85%A8%E6%99%AF%E5%9B%BE/pexels-photo-13717143.jpeg?sign=492505ce1f5432ed0164a8eaf41c656d&t=1668507676') ;
    48. background-size: cover;
    49. }
    50. .sure {
    51. margin-top: 60rpx;
    52. width: 70%;
    53. }
    54. .statement {
    55. color: #ffffff;
    56. text-align: center;
    57. margin-top: 600rpx;
    58. font-size: 26rpx;
    59. align-content: center;
    60. }
    61. .statement text:nth-child(2) {
    62. margin-left: 15rpx;
    63. }
    • JSON
    1. {
    2. "usingComponents": {},
    3. "navigationStyle": "custom",
    4. "enablePullDownRefresh": false
    5. }
    • JS
    1. const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. avatarUrl: defaultAvatarUrl,
    8. check: false,
    9. },
    10. // 选择头像
    11. onChooseAvatar(e) {
    12. const {
    13. avatarUrl
    14. } = e.detail
    15. this.setData({
    16. avatarUrl,
    17. })
    18. },
    19. // 跳转到免责声明
    20. gotoBook() {
    21. wx.navigateTo({
    22. url: '/pages/agreementS/agreementS',
    23. })
    24. },
    25. // 勾选阅读 协议
    26. select() {
    27. this.setData({
    28. check: !this.data.check,
    29. })
    30. console.log(this.data.check)
    31. },
    32. // 登录 确认信息修改, 跳转到我的页面
    33. login(e) {
    34. if (this.data.check == false) {
    35. wx.showToast({
    36. title: '请勾选已阅读用户条款',
    37. icon: "none"
    38. })
    39. return;
    40. } else if (this.data.avatarUrl == defaultAvatarUrl) {
    41. wx.showToast({
    42. title: '请点击头像进行修改',
    43. icon: "none"
    44. })
    45. return;
    46. } else if (e.detail.value.nickName == null || e.detail.value.nickName == '') {
    47. wx.showToast({
    48. title: '请修改昵称',
    49. icon: "none"
    50. })
    51. return;
    52. }
    53. console.log('提交的数据:', e.detail.value.nickName)
    54. let avatarUrl = {
    55. avatarUrl: this.data.avatarUrl,
    56. nickName: e.detail.value.nickName
    57. }
    58. wx.setStorageSync('key', avatarUrl)
    59. wx.reLaunch({
    60. url: '/pages/my/my',
    61. })
    62. },
    63. })

    这里我是把用户的头像昵称信息给缓存下来的,直接src用头像地址会失效,但我缓存的过了一个小时都还能用,就没有传到服务器,主要是因为我其他页面都是直接用的缓存来展示用户的头像与昵称的,偷个懒咯。后面不行的话,我再来改改~~~

     拜拜~~

  • 相关阅读:
    LuatOS-SOC接口文档(air780E)--iotauth - IoT鉴权库, 用于生成各种云平台的参数
    Jackson 注解 使用示例
    动态链接那些事
    相机存储卡不小心格式化怎么恢复呢?
    设计模式之--原型模式(深浅拷贝)
    RT-Thread Nano移植FinSH控制台
    【数据结构之B树的讲解】
    【配电网重构】基于粒子群算法的配电网重构问题研究附matlab代码
    Windbg常用命令详解
    6.6K Star,比 Pandas 快很多的数据处理库
  • 原文地址:https://blog.csdn.net/qq_61122628/article/details/127920871