2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法

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

大家好,下面是我身为小白分享给小白哈,
不懂就问相互学习共同进步!
亲测自用原生代码,感谢大神指点赐教鼓励勿喷;

只需9个一键复制粘贴步骤一气呵成;
先来本文最终主要实现效果

获取微信小程序用户头像昵称的填写能力和方法原生写法

一:先捋一捋思路逻辑:
1:获取之前有个环节是wx.checkSession先自动判断缓存里
有没用户之前的信息session_key有没过期,
没有或者过期就执行下一步;

2:用获取用户返回的code,
然后配合服务器后端wx.request获取返回用户openid,(后端写法可以关注找我要);

3:返回有了openid即用户唯一标识可以定义全局和存缓存后续更新用户相关信息用

4:编辑个人中心页面 和跳转用户信息获取授权页

二:开码:
1.先在小程序文件包目录中新建image文件夹,
然后将下面的图片命名为avatarUrl作为默认头像放进/image文件夹中初始化备用,
图片链接:https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0
2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法

2.在app.js页中一键复制下面代码粘贴:

App({
  data: {
  },
  userInfo:{
    nickName:'',
    avatarUrl:''
  },
  globalData:{
    openid:''
  },
  onLaunch: function () {
    let userInfo = wx.getStorageSync('userInfo');
      if (!userInfo){
        wx.setStorage({
          key:'userInfo',
            data:{avatarUrl:'/image/avatarUrl.png'
            }
        })
      }
  wx.checkSession({
    fail () {
      wx.login({
        success: (res) => {
        const {code} = res.code
        wx.setStorageSync('code', res.code)
          console.log("获取并缓存code:", res.code)
            if (res) { 
              wx.request({
                url: '你的服务器API地址',
                method: 'POST',
                data: { code: res.code },
                header:{'content-Type': 'application/x-www-form-urlencoded;charset=utf-8',},
                  success:res=> {              
                    console.log("后端:openid:", res.data) 
                    let openid = res.data
                    const app = getApp()
                    getApp().globalData.openid = openid                                        
                    console.log('缓存openid:',app.globalData.openid)           
                    wx.setStorageSync('openid', res.data)                                             
                  }
              })
            } else {
              console.log('登录失败!' + res.errMsg)
            }
        }
      })
        console.log("session_key 已经失效,重新登陆获取流程")
      }
  })
 }
})

3.在page页面里新建文件夹mine再对着mine文件夹新建page,定义名字就写mine后会自动生成四个文件
有了mine.js页面并在里边一键复制粘贴进去下面代码:

const app = getApp()
Page({
  data: {
    userInfo:{
      nickName:'',
      avatarUrl:''
    }
  },
  onShow() {                   
            this.setData({ 
              nickName:wx.getStorageSync('nickName'), 
              userInfo:wx.getStorageSync('userInfo'),
              mobile:wx.getStorageSync('mobile')
             })        
  }, 
})

4:在mine.wxml页面一键复制粘贴进去下面代码:

    <button bind:chooseavatar="onChooseAvatar">
      <navigator url="/pages/login/login" open-type="navigate">
        <image class="avatar" src="{{userInfo.avatarUrl}}"> </image>
      </navigator>
    </button>
    <view wx:if="{{!nickName}}" class="login-text">点击授权登录</view>
    <block wx:else>
      <view class="login-text">{{nickName}}</view>
    </block>

5:在mine.wxss页面一键复制粘贴进去下面代码:

.avatar {
  width: 160rpx;
	height: 160rpx;
  border: 1rpx solid #ffffff;
  border-radius: 50%;
  margin-top: 1rpx;
}
.txan[plain] {
  border: none;
  border-color: transparent;
}
.login-text {
	font-size: 35rpx;
	display: flex;
	align-items: center;
	/*垂直居中 */
	justify-content: center;
  }

6.page页面里新建文件夹login(再对着login文件夹右键新建page,定义名字就写login后会自动生成四个文件),
然后一键复制粘贴进去下面代码到login.js页:

const app = getApp();
Page({
  data: {
    userInfo:{
      avatarUrl:''
    }
  },
  onShow() {
    this.setData({ 
      userInfo:wx.getStorageSync('userInfo'),
    }) 
  },
                
onChooseAvatar: function (res) {

  const { userInfo } = res.detail.avatarUrl
  this.setData({userInfo:res.detail})
    app.userInfo.avatarUrl = res.detail.avatarUrl
    wx.setStorageSync('userInfo', res.detail)
    console.log( "缓存头像临时Url:",wx.getStorageSync('userInfo'))
    var filePath = getApp().userInfo.avatarUrl
    console.log('头像路径filePath:',filePath)
    var fileName = Math.random().toString(36).substr(2);
    console.log('头像图片文件名fileName:',fileName)            
},
  bindKeyInput: function (e) { 
},

fromsubmit (e) {
  const nickName = e.detail.value;
  this.setData({nickName: e.detail.value,})
  console.log("nickName:",nickName)
  wx.setStorageSync('nickName', e.detail.value)
  console.log( "名字有了放缓存:",wx.getStorageSync('nickName'))
},

setBtnTap() {
      const {userInfo} = this.data
      if([userInfo.avatarUrl] == '/image/avatarUrl.png') {
        wx.showToast({
          title: '头像不能为空',
          icon: 'none'
        })
      return
      }
      const {nickName} = this.data
      if(!nickName) {
        wx.showToast({
          title: '昵称不能为空',
          icon: 'none'
        })
      return
      }   
       wx.navigateBack({
       url: 'B?id=1'
      })
  },
})

7:一键复制粘贴进去下面代码到login.wxml页:

  <button class="avatar-wrapper bg-gradual-blue shadow-blur"
  open-type="chooseAvatar" bindchooseavatar="onChooseAvatar" style="width: 268rpx; height: 233rpx; display: block; box-sizing: border-box; left: 0rpx; top: -3rpx; position: relative">
  <image class="avatar" src="{{userInfo.avatarUrl}}" style="position: relative; left: 0rpx; top: 17rpx"> </image>
  <text class="position" style="width: 176rpx; height: 47rpx; display: flex; box-sizing: border-box">同步头像</text>
  </button>
  
  <view>
  <form bindsubmit="fromsubmit"> 
  <input style="width: 486rpx; height: 64rpx; display: block; box-sizing: border-box" type="nickname" 
  name="nickName"
  class="nickname-input" 
  placeholder="点击使用微信昵称" 
  bindinput="fromsubmit"
  bindKeyInput="bindKeyInput"
  input value="{{nickName}}"

  /></form>
  </view>
  
 
  <button class="bc lg user-confirm-btn user-confirm-btn--{{canSaveUser?'enabled':'disabled'}}" 
  form-type="submit"
  catchtap="setBtnTap"
  type="primary">保存</button>

8:一键复制粘贴进去下面代码到login.wxss页:

.avatar-wrapper {
  width: 10rpx;
  height: 250rpx;
  margin-top: 0rpx;
  margin-bottom: 30rpx;
  border-radius: 20rpx;
  margin-top: 30rpx;
}

.avatar {
  width: 150rpx;
  height: 150rpx;
  border: 1rpx solid #ffffff;
  border-radius: 50%;
}

.nickname-input {
  margin-bottom: 72rpx;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  font-size: 38rpx;
  font-weight: 400;
  color: #6164f8;
  text-align: center;
  /* 实线边框solid */
  border-style: solid;
  /* 圆角弧度radius */
  border-radius: 25px;
  /* 边框大小设置 */
  border-width: 1px;
  /* 输入框长度设置 */
  width: 220px;
}

9.app.json页全选粘贴下面这段:

{
    "pages": [
        "pages/mine/mine",
        "pages/index/index",
        "pages/login/login"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "Weixin",
        "navigationBarTextStyle": "black"
    },
    "style": "v2",
    "sitemapLocation": "sitemap.json"
}

OK , 搞定!

点击编译 测试一下吧!
点击头像 进去获取一下头像和昵称,
用户openid的话要对接好后端配合才能获取,要需要的朋友评论留言一下,
样式想弄漂亮就要慢慢去美化啦!多多赐教共同进步哈!
希望能点个关注支持一下,陆续会发其它文章资源出来保持交流相互学习!文章来源地址https://www.toymoban.com/news/detail-482383.html

到了这里,关于2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【微信小程序】通过云函数获取用户openid

    1.pages同级目录下新建新文件夹,命名为cloudFunctions(其他名字也可以)。 2.project.config.json中添加以下内容,值为上一步创建的文件夹名字。编译一次后上一步创建的文件夹前图标就带“云”了。 3.app.js内的App中添加 1.右击cloudFunctions文件夹,点击【新建Node.js云函数】,命名为

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

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

    2024年02月11日
    浏览(40)
  • 微信小程序-获取用户头像信息以及修改用户头像

    这里主要用到 button的open-type 功能,官网已有说明: 给 button 设置 open-type=\\\"chooseAvatar\\\" ,来使 bindchooseavatar 方法生效,在 bindchooseavatar 指定的函数中获取用户的头像信息 该方法触发后会自动弹出提示框,让用户选择头像,用户选择的头像会在 bindchooseavatar 指定的函数内获取,

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

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

    2024年02月13日
    浏览(32)
  • 微信小程序登录获取用户唯一标识OpenId,(SpringBoot项目)

    微信小程序的登录,需要获取到用户的唯一标识OpenId,这里只涉及到后端代码,所以前提是前端申请了一个小程序并且有了appid和secret。 文章目录 一、微信小程序登录流程 二、代码实现 1.引入相关依赖 2.代码实现 实际项目经验分享 先上官方开发文档连接 小程序登录 | 微信

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

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

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

    1.微信获取头像和昵称最新需要用户上传头像和手动输入昵称,否则昵称默认是微信用户,头像是灰色头像 ps(会提示使用微信头像和微信昵称)

    2024年02月11日
    浏览(49)
  • uniapp微信小程序最新登录获取头像、昵称

    由于微信官方wx.getUserProfile 接口的回收,以后不能通过wx.getUserProfile来返回用户信息,只能自己手动获取用户头像和昵称的信息。  针对此问题有以下解决方法: 在点击登录时用一个弹窗设置头像和昵称,如图:  使用button设置open-type=\\\"chooseAvatar\\\"来获取头像,至于button更多的效

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

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

    2024年02月11日
    浏览(54)
  • 最新uniapp 微信小程序获取头像操作指南

    小程序用户头像昵称获取规则调整公告 自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整: 自生效期起,小程序 wx.getUserProfile 接口将被收回 :生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰

    2024年02月03日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包