微信小程序中提供了相關(guān)API 讓開(kāi)發(fā)者能獲取到微信用戶的相關(guān)信息轴踱,在首次去獲取的時(shí)候會(huì)展示一個(gè)用戶是否同意授權(quán)的對(duì)話框。有不少線上的小程序都沒(méi)有處理好用戶“拒絕授權(quán)”導(dǎo)致的“授權(quán)失敗”場(chǎng)景劣欢。
私認(rèn)為寿谴,開(kāi)發(fā)微信小程序在用戶授權(quán)上有一個(gè)要點(diǎn):除非非常有必要蜒秤,不要一進(jìn)入小程序就申請(qǐng)授權(quán)衅疙,而是僅需要授權(quán)的頁(yè)面才申請(qǐng)——這樣讓用戶的心理負(fù)擔(dān)沒(méi)那么大。站在用戶的角度虑啤,有時(shí)候我是很討厭這種一進(jìn)入小程序就申請(qǐng)授權(quán)的行為隙弛,畢竟頭像昵稱這些本質(zhì)上還是屬于用戶的隱私架馋,你小程序不給個(gè)理由就要拿去,我還是很反感的驶鹉。同時(shí)绩蜻,也應(yīng)該做好因用戶拒絕授權(quán)導(dǎo)致的“授權(quán)失敗”場(chǎng)景的優(yōu)雅處理。
以上內(nèi)容加標(biāo)題都是剽竊的室埋,不管了办绝。下邊就寫我自己需要用到的代碼吧。
var openid = wx.getStorageSync('openid');
if (!openid) {
console.log("用戶未授權(quán)");
wx.getSetting({
success: function(data) {
if (data.authSetting["scope.userInfo"] == false) {
wx.showModal({
title: '用戶未授權(quán)',
content: '如需登錄并正常使用姚淆,請(qǐng)按確定并在授權(quán)管理中選中“用戶信息”孕蝉,然后點(diǎn)擊確定即可正常使用。',
showCancel: false,
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: function success(res) {
if (res.authSetting["scope.userInfo"] == true) {
console.log("用戶已授權(quán)");
app.getUserInfo(); // 自己用來(lái)獲取用戶數(shù)據(jù)的函數(shù)
}
}
});
}
}
})
}
}
});
}
其中 app.getUserInfo(); 是自己用來(lái)獲取用戶數(shù)據(jù)的函數(shù)腌逢,可以參考之前的文章獲取小程序的openid與unionid