使用一个button 绑定的bindtap = "onTapGetUserInfo", 但是开发工具里没有弹出授权的窗口,直接是进入到了getUserProfile 的fail中,在我写的例子中,点击确认授权后,弹出了“您拒绝了授权”的toast。使用开发工具版本为最新的 Stable 1.05.2103190, 调试基础库为2.10.4。(我也尝试了2.16.0、2.15.0,都没有弹出授权弹窗,直接进入了fail。)开发工具和真机都没有弹出授权窗口。
电脑是 Macbook Pro, 系统 macOS Big Sur 11.2
手机 iPhone 12 Pro, 微信版本 8.0.3,系统 iOS 14.4.2
/**
* 用户点击获取用户信息按钮后触发,新的授权
*/
onTapGetUserInfo: function(e) {
var that = this
console.log("user allow get user info")
try {
wx.getUserProfile({
desc:"需要使用您的头像和昵称信息来发起活动",
lang: "zh_CN",
success: res => {
// 可以将 res 发送给后台解码出 unionId
app.globalData.userInfo = res.userInfo
console.log(res.userInfo)
app.updateUserInfo(app.globalData.userInfo);
console.log('update userInfo in auth.js')
var userInfoAuthStatus = 1
that.setData({
userInfoAuthStatus: userInfoAuthStatus,
userInfo: res.userInfo
})
wx.showToast({
title: '授权成功',
})
wx.hideLoading()
setTimeout(function () {
that.navigateBack()
}, 200)
},
fail: res => {
//拒绝授权
wx.showToast({
title: '您拒绝了授权',
icon: 'none'
})
return;
}
})
} catch (error) {
//无法调用时使用老版本替代
wx.getSetting({
success: function(res){
if (!res.authSetting['scope.userInfo']) {
//进入未授权 -- wx.getUserInfo获取用户信息
wx.getUserInfo({
success: function(ress) {
//ress用户数据
app.globalData.userInfo = res.userInfo
console.log(res.userInfo)
app.updateUserInfo(app.globalData.userInfo);
console.log('update userInfo in auth.js')
var userInfoAuthStatus = 1
that.setData({
userInfoAuthStatus: userInfoAuthStatus,
userInfo: res.userInfo
})
wx.showToast({
title: '授权成功',
})
wx.hideLoading()
setTimeout(function () {
that.navigateBack()
}, 200)
}
})
}
}
})
}
},
已解决,desc里的文案改短一些就行了
开发者工具 1.05.2104092、基础库 2.16.0 测试正常,可参考以下代码
wx.getUserProfile({ desc: '更新用户信息', success(res) { console.info(res); //... }, fail(err) { console.error(err); }, })
console.log一下fail中的res,看一下提示什么