微信小程序中提供了相关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