一个看似没有什么问题的代码,但点了好几次登录授权都没有反应。
getUserProfile() {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于展示用户信息,绑定用户基本信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
//存储已经保存的用户数据
wx.setStorageSync('userInfo', res.userInfo)
console.log("存储用户数据<getUserProfile>:" + res.userInfo)
}
})
}
最终从fail分支这里找到了原因:
getUserProfile() {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于展示用户信息,绑定用户基本信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
//存储已经保存的用户数据
wx.setStorageSync('userInfo', res.userInfo)
console.log("存储用户数据<getUserProfile>")
},
fail:(err)=>{
console.log(err)
wx.showToast({
title: '失败:'+err,
duration:3000
})
}
})
}
根据请求的结果分析:
{errMsg:"getUserProfile:fail desc length does not meet the requirements"}
{errMsg:"getUserProfile:失败 desc(描述) 长度不符合要求"}
我也是纳闷了,这个信息多余的都不能有!
因此解决方案(尽量精简desc的描述信息):
getUserProfile() {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
//存储已经保存的用户数据
wx.setStorageSync('userInfo', res.userInfo)
console.log("存储用户数据<getUserProfile>:" + res.userInfo)
}
})
}