(已解决)请教,关于wx.getUserInfo修改后,获取授权状态的方式
发布于 5 年前 作者 yanjing 2029 次浏览 来自 问答

       首先,确认一点 ,我在app.js里是否已经无法完成用户授权流程了?因为授权需要用到button 好像没有app.wxml这一说。        其次,基于上面的想法,我将授权移到了第一个页面,app.js会事先根据getUserInfo返回是否失败来存储一个用户是否授权的变量,在第一个页面根据这个变量判断页面是展示授权还是正常显示。        那么问题就在于,用户未授权,我给他展示了官方文档中提到的button,用户点击它,弹出授权,这没问题,可是我怎么去监听用户接下来的操作,用户点了拒绝 还是同意?        小白一枚,可能是我阅读文档的疏忽,麻烦大佬们不舍赐教,谢谢。

7 回复

先思考下问题,

你的小程序是不是没有用户信息就玩不起来了,没有游客模式的么?

再思考个问题

一定要一进来就获取用户信息么,不能延后么?

最后再思考

怎么放这个按钮

app.js里是否已经无法完成用户授权流程了 ?  楼主这个问题的答案是无法完成了吧 ?

打印e出来,拒绝的时候会返回errMsg“getUserInfo:fail auth deny”,允许会返回errMsg“getUserInfo:ok”,根据这个来判断允许拒绝

我感觉你存授权变量有问题,可以用这个判断是否授权过,

    wx.getSetting({

      success: res => {

        if (res.authSetting[‘scope.userInfo’]) {

          return true

        } else {

          return false

        }

      }

    })

同意和拒绝都会触发bindgetuserinfo。

加个验证好了:

//授权访问

bindGetUserInfo: function (e) {

if (e.detail.userInfo != undefined) {

wx.setStorageSync(‘user’, e.detail.userInfo);

this.loginF(e);

}

},

如果用户授权了,就把信息存储起来。如果拒绝了,你是获取不到信息的。就可以根据这个做判断,如果用户要进行的操作需要用到个人信息,就再次给个button让用户去授权

点击拒绝相当于没点击button,同意才会触发bindgetuserinfo

回到顶部