您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 微信小程序中getUserInfo回调方法怎么用
## 一、背景介绍
微信小程序的`getUserInfo`接口是获取用户信息的重要API,开发者可以通过此接口获取用户的昵称、头像、性别等基本信息。随着微信接口的迭代更新,该接口的使用方式也经历了多次变化。本文将详细介绍当前版本(2023年)中`getUserInfo`回调方法的使用方式。
## 二、接口变更说明
> **注意**:自2021年4月起,微信调整了用户信息获取策略:
> 1. 移除了`wx.getUserInfo`的直接调用方式
> 2. 必须通过按钮点击触发(`<button open-type="getUserInfo">`)
> 3. 需要用户主动授权
## 三、基础使用方法
### 3.1 前端wxml配置
```html
<button
open-type="getUserInfo"
bindgetuserinfo="onGetUserInfo"
>
获取用户信息
</button>
Page({
onGetUserInfo(e) {
if (e.detail.userInfo) {
// 用户同意授权
console.log('用户信息:', e.detail.userInfo)
this.setData({
avatarUrl: e.detail.userInfo.avatarUrl,
nickName: e.detail.userInfo.nickName
})
} else {
// 用户拒绝授权
wx.showToast({
title: '授权失败',
icon: 'none'
})
}
}
})
async onGetUserInfo(e) {
if (e.detail.userInfo) {
try {
// 1. 获取code
const loginRes = await wx.login()
// 2. 发送到后端服务器
wx.request({
url: 'https://yourdomain.com/auth',
method: 'POST',
data: {
code: loginRes.code,
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
rawData: e.detail.rawData,
signature: e.detail.signature
},
success(res) {
console.log('服务端验证结果', res.data)
}
})
} catch (err) {
console.error('处理失败', err)
}
}
}
推荐使用全局变量或缓存:
// app.js
App({
globalData: {
userInfo: null
}
})
// 页面中
const app = getApp()
app.globalData.userInfo = e.detail.userInfo
wx.openSetting({
success(res) {
console.log(res.authSetting)
}
})
// 检查是否支持新方式
if (wx.getUserProfile) {
// 使用新API
} else {
// 兼容旧版本处理
}
GitHub示例仓库 包含: - 前端完整实现 - Node.js后端解密示例 - 多场景测试用例
本文基于微信小程序基础库2.21.0+版本编写,实际开发时请以微信官方文档为准。 “`
这篇文章共计约850字,采用Markdown格式编写,包含: 1. 多级标题结构 2. 代码块展示关键实现 3. 注意事项提示框 4. 外部链接引用 5. 版本说明备注 6. 完整的实现示例
可根据需要调整代码示例部分的具体内容或补充更多实际应用场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。