微信小程序如何获取微信昵称和头像

简介: 微信小程序如何获取微信昵称和头像
<open-data type="userAvatarUrl"></open-data>

之前是使用open-data获取微信昵称和头像,但是更新之后,小程序不再支持使用该方法


现在需要用wx.getUserProfile这个API获取用户信息。页面产生点击事件(如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo。


官方例子:wx.getUserProfile(Object object) | 微信开放文档 (qq.com)


获取用户信息按官方的来即可。但是在登录小程序获取一次后我们需要把用户信息存起来,不能点击一次获取一次。

文件:

 <button open-type="chooseAvatar" bindchooseavatar="assd">
    <image src="{{image}}" />
  </button>
<form catchsubmit="formSubmit" catchreset="formReset">
    <view class="name">
      <view class="name_text">
        昵称
      </view>
      <view>
        <input class="weui-input" name="input" type="nickname" placeholder="请输入昵称" />
      </view>
    </view>
  <view class="enter">
    <button style="margin: 30rpx 0" type="primary" formType="submit">登录</button>
  </view>
</form>

wxss文件:

.button {
  width: 100%;
  height: 200px;
}
.button button {
  width: 25%;
  height: 100px;
  margin-top: 50px;
  background-color: #ffffff;
}
.button image {
  width: 150%;
  height: 100%;
}
.name {
  width: 100%;
  height: 50px;
  border: 1px solid #cecccc;
  display: flex;
}
.name_text {
  width: 20%;
  height: 50px;
  line-height: 50px;
  padding-left: 5%;
}
.name input {
  width: 80%;
  height: 50px;
}
.enter {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 100px;
}

js文件:

这是写一个默认的灰色头像

const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
 data: {
    image: defaultAvatarUrl
  },
})

我们需要点击按钮获取到用户头像,然后把图片存储到本地 wx.setStorageSync() 方法使用

const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
  data: {
    image: defaultAvatarUrl
  },
//用户头像
  assd: function (e) {
    console.log(e.detail.avatarUrl);
    let headimg =e.detail.avatarUrl
    // 存储用户头像
    wx.setStorageSync('headimg', headimg)
    this.setData({
      image: e.detail.avatarUrl
    })
  },
//用户名
  formSubmit(e) {
    let nickname=e.detail.value.input
    // 存储用户名称
    wx.setStorageSync('nickname', nickname)
  },
})

如何获取缓存数据:使用 wx.getStorageSync() 这个方法就可以获取本地数据

其他页面js:

Page({
  data: {
    scrollTop: true
  },
onShow: function () {
     let img = wx.getStorageSync('headimg')
     let name = wx.getStorageSync('nickname')
    }
})
相关文章
|
5月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
1124 7
|
14天前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
40 3
|
5月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
992 1
|
1月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
285 8
|
1月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
356 12
|
5月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
362 1
|
5月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1870 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
5月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
853 0
|
5月前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
935 0
|
21天前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。

热门文章

最新文章