3480关注10040浏览
改版之后的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")
}
},
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
我爱Grace大姐姐
7人对此回答表示赞同
做成一个弹层的组件,方便使用
展开70回复分享发布于 6年前评论(0)
收起评论