用户未授权处理解决方案
改版之后的wx.getUserInfo 和 wx.authorize在使用scope.userInfo时,无法再提供授权弹框,对此需要在原来代码的基础上进行修改,在onLaunch中对于授权进行判断,授权的话直接使用wx.getUserInfo,未授权会跳到带button的登录页,关键在于登录成功过如果能够返回原先的网页,跳页面之前使用的是navigateTo,但是会产生用户点击后退的问题,但是如果使用redirectTo,则不能返回原先的网页,有没有大神有更好的解决方案啊,万分感谢
代码:
app.js
// 进行授权判断
wx.getSetting({
success: res => {
if (res.authSetting[‘scope.userInfo’]) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo();
} else {
//没有授权,去登录页面 提示用户进行登录
wx.navigateTo({
url: ‘/pages/login/login’,
})
}
console.log(“授权判断结束”)
}
})
login 页面:
login:function (e) {
if(e.detail.userInfo){
let sessionId = wx.getStorageSync(“sessionId”);
console.log("where login by user sessionid = "+sessionId);
var data = {
retStatus: 200,
encryptedData: e.detail.encryptedData,
userInfo: e.detail.userInfo,
iv: e.detail.iv
}
//获取用户信息
setTimeout(function () {
wx.navigateBack({
delta:1
})
}, 1500);
}else{
console.log(“refuse authorize”)
}
},
