微信小程序获取用户信息:wx.getUserInfo与open-data解析
192 浏览量
更新于2023-05-03
1
收藏 70KB PDF 举报
"微信小程序获取用户信息的两种主要方法是使用`wx.getUserInfo`和`open-data`组件。这两种方法在微信小程序开发中用于获取用户的个人信息,如头像和昵称。随着微信接口的更新,获取用户信息的过程有所变化,需要开发者适应新的规则以避免授权弹窗的缺失。"
在微信小程序中,以前获取用户信息通常采用`wx.getUserInfo`方法。这个方法会在用户授权后返回一个包含用户信息的对象,包括昵称、头像等。以下是一个使用`wx.getUserInfo`的基本示例:
```javascript
onLoad: function (options) {
var that = this;
// 获取用户信息
wx.getUserInfo({
success: function (res) {
console.log(res);
that.data.userInfo = res.userInfo;
that.setData({
userInfo: that.data.userInfo
});
}
});
}
```
然而,微信接口的更新导致`wx.getUserInfo`不再直接显示授权弹窗。现在,开发者需要通过`button`组件并设置`open-type="getUserInfo"`来引导用户授权。同时,需要检查`wx.canIUse`来确保用户使用的微信版本支持新接口。以下是使用新方法的例子:
```html
<!-- wxml -->
<!-- 需要使用button来引导授权登录 -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
<view wx:else>请升级微信版本</view>
```
```javascript
Page({
data: {
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
onLoad: function () {
// 查看是否已授权
wx.getSetting({
success: function (res) {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用getUserInfo获取头像昵称
wx.getUserInfo({
success: function (res) {
console.log(res.userInfo);
}
});
}
}
});
},
bindGetUserInfo: function (e) {
console.log(e.detail.userInfo);
}
});
```
此外,`open-data`组件是另一种获取用户基本信息的方式,它可以直接展示用户的微信头像和昵称,而无需调用`wx.getUserInfo`。这种方式通常用于展示已授权用户的静态信息,例如:
```html
<view>
<open-data type="userAvatarUrl" class="avatar"></open-data>
<open-data type="userName" class="nickname"></open-data>
</view>
```
需要注意的是,`open-data`方式不会返回完整的用户信息对象,仅能展示预设的几个属性,如头像URL和昵称,且这些信息是静态的,无法进行修改。
总结来说,微信小程序获取用户信息的方法现在更注重用户体验,需要开发者设计适当的交互流程来引导用户授权。`wx.getUserInfo`与`open-data`组件结合使用,可以在不打扰用户的情况下,实现用户信息的获取和展示。开发者需要根据微信的最新接口调整代码,确保应用的兼容性和用户体验。
2020-10-14 上传
2021-03-29 上传
2020-11-27 上传
2023-03-28 上传
2023-07-27 上传
2023-06-07 上传
2023-08-09 上传
2023-04-04 上传
2023-07-08 上传
weixin_38514660
- 粉丝: 6
- 资源: 946
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库