1. 直接授权获取方式
WXML页面设置
在小程序页面的WXML文件中,需要添加一个按钮用于触发获取用户信息的操作:
<button bindtap="getUserInfo" open-type="getUserInfo">获取用户信息</button>
<view wx:if="{{userInfo}}">
<image src="{{userInfo.avatarUrl}}"></image>
<text>{{userInfo.nickName}}</text>
</view>
<b>JS逻辑实现</b>
在对应的JS文件中,需要设置userInfo数据对象和事件处理函数:
Page({
data: {
userInfo: {}
},
getUserInfo(res) {
console.log(res.userInfo); // 打印用户信息到控制台
this.setData({userInfo: res.userInfo}); // 将信息保存到data中
})
2. 跨页面获取方式
页面A结构
页面A负责显示用户信息和跳转到授权页面:
页面A跳转逻辑
// 页面A JS
Page({
data: {userInfo: {}},
goto() {
wx.navigateTo({
url: '../login/login',
})
}
})
<b>页面B授权处理</b>
页面B负责获取用户信息并存入缓存:
<!-- 页面B WXML -->
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">登录</button>
// 页面B JS
Page({
getUserInfo(res) {
const userInfo = res.userInfo;
// 将用户数据写入缓存
wx.setStorageSync('userInfo', userInfo);
// 返回上一页
wx.navigateBack();
}
})
页面A获取缓存数据
页面A需要在onShow生命周期中获取缓存数据:
// 页面A JS
Page({
onShow() {
const userInfo = wx.getStorageSync('userInfo');
this.setData({userInfo});
}
})
`
两种方法比较
1. 直接授权方式适合单页面应用,操作简单直接
2. 跨页面方式适合多页面共享用户信息,通过缓存实现数据传递
3. 两种方式都需要用户主动点击按钮触发授权流程
4. 实际开发中可以根据业务需求选择合适的方式或组合使用
注意事项
1. 必须使用button组件并设置open-type="getUserInfo"才能触发授权
2. 用户拒绝授权后需要妥善处理,提供重新授权的方式
3. 用户信息包含敏感数据,使用时需遵循相关隐私政策
4. 微信基础库版本不同可能导致API行为差异,需做好兼容处理
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态