小程序頁面自動彈出授權的方法:
在index.js文件中實現。
onLoad: function (options) {wx.showLoading({
title: '登錄中'
})
wx.getSetting({
success: res => {
console.log(res)
if (res.authSetting['scope.userInfo'] === true) { // 成功授權
// 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框
wx.getUserInfo({
success: res => {
console.log(res)
this.setUserInfoAndNext(res)
},
fail: res => {
console.log(res)
}
})
} else if (res.authSetting['scope.userInfo'] === false) { // 授權彈窗被拒絕
wx.openSetting({
success: res => {
console.log(res)
},
fail: res => {
console.log(res)
}
})
} else { // 沒有彈出過授權彈窗
wx.getUserInfo({
success: res => {
console.log(res)
this.setUserInfoAndNext(res)
},
fail: res => {
console.log(res)
wx.openSetting({
success: res => {
console.log(res)
},
fail: res => {
console.log(res)
}
})
}
})
}
}
})
},
// 獲取個人信息成功,然后處理剩下的業務或跳轉首頁
setUserInfoAndNext(res) {
// 由于 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回
// 所以此處加入 callback 以防止這種情況
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
wx.hideLoading()
// 跳轉首頁
setTimeout(() => {
wx.reLaunch({
url: '../home/home'
})
}, 1000)
},