- 直接獲取用戶數(shù)據(jù)
wx.getUserInfo({
success: function (res) {
var userInfo = res.userInfo
console.log("獲取登錄用戶的所有信息")
console.log(res.userInfo)
}
})
- 如果用戶拒絕,提示模態(tài)框,點(diǎn)擊確定,進(jìn)入設(shè)置,再次讓用戶選擇允許。
fail: function (res) {
wx.showModal({
title: '提示',
content: '獲取用戶信息失敗,這將影響您使用小程序,是否重新設(shè)置授權(quán)?',
showCancel: true,
cancelText: "否",
confirmText: "是",
success: function (res) {
if (res.confirm) { //點(diǎn)擊是
wx.openSetting({ //打開設(shè)置
success: function (res) {
console.log(res)
if (res.authSetting['scope.userInfo'] === true) {
wx.getUserInfo({
success: function (res) {
console.log("重新登錄成功")
var userInfo = res.userInfo
var nickName = userInfo.nickName //用戶名
var avatarUrl = userInfo.avatarUrl //頭像
console.log("獲取登錄用戶的所有信息")
console.log(res.userInfo)
that.setData({
imageInfo: avatarUrl,
userName: nickName,
hasUserInfo: true,
isLogin: true,
})
t.globalData.imageInfo = avatarUrl;//全局變量表示登錄用戶頭像
t.globalData.userName = nickName;//登錄用戶名
}
})
}
}
})
} else if (res.cancel) {
console.log('用戶取消授權(quán)個(gè)人信息');
}
}

初始狀態(tài)

點(diǎn)擊登錄
如果點(diǎn)擊允許

從微信后臺(tái)獲取到的信息
前臺(tái)解析并顯示

得到用戶名和頭像
如果點(diǎn)擊拒絕,讓你重新選擇

顯示模態(tài)框
點(diǎn)擊是,就進(jìn)入設(shè)置界面

進(jìn)入設(shè)置界面
點(diǎn)擊勾選,返回即可登錄。
loginwx: function() {
var that = this
if(that.data.isLogin == false)
{
wx.getUserInfo({
success: function (res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName //用戶名
var avatarUrl = userInfo.avatarUrl //頭像
console.log("獲取登錄用戶的所有信息")
console.log(res.userInfo)
// wx.showToast({
// title: nickName,
// });
that.setData({
imageInfo: avatarUrl,
userName: nickName,
hasUserInfo: true,
isLogin: true,
})
t.globalData.imageInfo = avatarUrl;//全局變量表示登錄用戶頭像
t.globalData.userName = nickName;//登錄用戶名
},
fail: function (res) {
wx.showModal({
title: '提示',
content: '獲取用戶信息失敗,這將影響您使用小程序,是否重新設(shè)置授權(quán)?',
showCancel: true,
cancelText: "否",
confirmText: "是",
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: function (res) {
console.log(res)
if (res.authSetting['scope.userInfo'] === true) {
wx.getUserInfo({
success: function (res) {
console.log("重新登錄成功")
var userInfo = res.userInfo
var nickName = userInfo.nickName //用戶名
var avatarUrl = userInfo.avatarUrl //頭像
console.log("獲取登錄用戶的所有信息")
console.log(res.userInfo)
that.setData({
imageInfo: avatarUrl,
userName: nickName,
hasUserInfo: true,
isLogin: true,
})
t.globalData.imageInfo = avatarUrl;//全局變量表示登錄用戶頭像
t.globalData.userName = nickName;//登錄用戶名
}
})
}
}
})
} else if (res.cancel) {
console.log('用戶取消授權(quán)個(gè)人信息');
}
}
})
}
})
}