首先,确认一点 ,我在app.js里是否已经无法完成用户授权流程了?因为授权需要用到button 好像没有app.wxml这一说。 其次,基于上面的想法,我将授权移到了第一个页面,app.js会事先根据getUserInfo返回是否失败来存储一个用户是否授权的变量,在第一个页面根据这个变量判断页面是展示授权还是正常显示。 那么问题就在于,用户未授权,我给他展示了官方文档中提到的button,用户点击它,弹出授权,这没问题,可是我怎么去监听用户接下来的操作,用户点了拒绝 还是同意? 小白一枚,可能是我阅读文档的疏忽,麻烦大佬们不舍赐教,谢谢。
先思考下问题,
你的小程序是不是没有用户信息就玩不起来了,没有游客模式的么?
再思考个问题
一定要一进来就获取用户信息么,不能延后么?
最后再思考
怎么放这个按钮
app.js里是否已经无法完成用户授权流程了 ? 楼主这个问题的答案是无法完成了吧 ?
我感觉你存授权变量有问题,可以用这个判断是否授权过,
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
return true
} else {
return false
}
}
})
打印e出来,拒绝的时候会返回errMsg: "getUserInfo:fail auth deny",允许会返回errMsg: "getUserInfo:ok",根据这个来判断允许拒绝
同意和拒绝都会触发bindgetuserinfo。
加个验证好了:
//授权访问
bindGetUserInfo: function (e) {
if (e.detail.userInfo != undefined) {
wx.setStorageSync('user', e.detail.userInfo);
this.loginF(e);
}
},
如果用户授权了,就把信息存储起来。如果拒绝了,你是获取不到信息的。就可以根据这个做判断,如果用户要进行的操作需要用到个人信息,就再次给个button让用户去授权
点击拒绝相当于没点击button,同意才会触发bindgetuserinfo