微信小程序中提供了相關API 讓開發者能獲取到微信用戶的相關信息,在首次去獲取的時候會展示一個用戶是否同意授權的對話框。有不少線上的小程序都沒有處理好用戶“拒絕授權”導致的“授權失敗”場景。
私認為,開發微信小程序在用戶授權上有一個要點:除非非常有必要,不要一進入小程序就申請授權,而是僅需要授權的頁面才申請——這樣讓用戶的心理負擔沒那么大。站在用戶的角度,有時候我是很討厭這種一進入小程序就申請授權的行為,畢竟頭像昵稱這些本質上還是屬于用戶的隱私,你小程序不給個理由就要拿去,我還是很反感的。同時,也應該做好因用戶拒絕授權導致的“授權失敗”場景的優雅處理。
以上內容加標題都是剽竊的,不管了。下邊就寫我自己需要用到的代碼吧。
var openid = wx.getStorageSync('openid');
if (!openid) {
console.log("用戶未授權");
wx.getSetting({
success: function(data) {
if (data.authSetting["scope.userInfo"] == false) {
wx.showModal({
title: '用戶未授權',
content: '如需登錄并正常使用,請按確定并在授權管理中選中“用戶信息”,然后點擊確定即可正常使用。',
showCancel: false,
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: function success(res) {
if (res.authSetting["scope.userInfo"] == true) {
console.log("用戶已授權");
app.getUserInfo(); // 自己用來獲取用戶數據的函數
}
}
});
}
}
})
}
}
});
}
其中 app.getUserInfo(); 是自己用來獲取用戶數據的函數,可以參考之前的文章獲取小程序的openid與unionid