推荐答案
getUserInfo 接口的调整对小程序开发的影响主要体现在以下几个方面:
- 用户授权流程的变化:调整后的
getUserInfo接口不再主动弹出授权窗口,开发者需要通过button组件的open-type属性来触发授权请求。 - 用户信息的获取方式:开发者需要在用户授权后,通过
wx.getUserProfile接口获取用户信息,而不是直接通过getUserInfo。 - 用户体验的提升:调整后的授权流程更加符合用户隐私保护的要求,用户可以在明确了解授权内容后再决定是否授权。
- 代码的调整:开发者需要修改原有的授权逻辑,适配新的接口调用方式。
本题详细解读
1. 用户授权流程的变化
在调整之前,getUserInfo 接口会在用户首次访问小程序时自动弹出授权窗口,用户可以选择授权或拒绝。调整后,getUserInfo 接口不再主动弹出授权窗口,开发者需要通过 button 组件的 open-type 属性来触发授权请求。例如:
<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">授权登录</button>
2. 用户信息的获取方式
调整后,开发者需要在用户授权后,通过 wx.getUserProfile 接口获取用户信息。例如:
wx.getUserProfile({
desc: '用于完善用户资料',
success: (res) => {
console.log(res.userInfo);
}
});3. 用户体验的提升
调整后的授权流程更加符合用户隐私保护的要求。用户可以在明确了解授权内容后再决定是否授权,避免了不必要的授权弹窗干扰用户体验。
4. 代码的调整
开发者需要修改原有的授权逻辑,适配新的接口调用方式。例如,原有的 getUserInfo 调用需要替换为 wx.getUserProfile,并且需要处理用户拒绝授权的情况。
// www.javascriptcn.com code example
Page({
onGetUserInfo(e) {
if (e.detail.userInfo) {
// 用户授权
wx.getUserProfile({
desc: '用于完善用户资料',
success: (res) => {
console.log(res.userInfo);
}
});
} else {
// 用户拒绝授权
console.log('用户拒绝授权');
}
}
});通过以上调整,开发者可以更好地适应 getUserInfo 接口的变化,提升小程序的用户体验和隐私保护水平。