收藏
回答

在小程序工具清理掉所有缓存后再次发起用户授权请求仍然会发生系统错误问题?

        /* 获取用户信息 */
        wx.getSetting({
            success(res) => {
                // 如果用户已经授权 scope.userInfo 这个 scope
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
                    console.log("用户已授权")
                    wx.getUserInfo({
                        success(res) => {
                            console.log("用户信息", res)
                            }
                        }
                    })

                } else { // 向用户发起授权请求
                    console.log('向用户发起授权请求 scope.userInfo')
                    wx.authorize({
                        scope'scope.userInfo',
                        success(suc) {
                            console.log("用户已授权", suc
                        },
                        fail(err) {
                            console.log("无法授权", err)
                        },
                        complete(c) {
                            console.log("授权函数执行", c)
                        }
                    })
                }
            }
        })

提示如下错误信息

errMsg: "authorize:fail 系统错误,错误码:-12007,scope unauthorized"

截图

此时,只能通过用户主动去点击授权按键才会调出授权页面,但是就做不到首次打开小程序主动调出授权页面的要求了

回答关注问题邀请回答
收藏

3 个回答

  • CitizenFour
    CitizenFour
    2020-09-03

    谢邀,必须用户主动触发授权,不能强制,即使你设置了强制,审核也不会通过

    2020-09-03
    有用 1
    回复
  • 王志鹏
    王志鹏
    2020-09-03

    现在不是只能用户点击才能引导去授权 不能主动弹授权框了

    2020-09-03
    有用 1
    回复 1
    • 村上植树
      村上植树
      2020-09-03
      好的感谢
      2020-09-03
      回复
  • 村上植树
    村上植树
    2020-09-03

    由于项目需要用户开启小程序后检测如果没有授权则自动拉起授权页面,目的也是尽量避免相关功能无法使用,但是已经无法自动拉起授权了,那么只能是引导用户去授权,在原来调用授权的地方修改成对话框的形式

                        console.log('向用户发起授权请求 scope.userInfo')
                        wx.showModal({
                            title'小贴士',
                            content'如果要体验完整的功能,需要点击获取头像昵称来授权小程序使用哦',
                            showCancel: false,
                            confirmText'已知悉',
                            success (res) {
                                // ...
                            } 
                        })
    


    也只能想到这种方法了,如果有更好的方法也可继续在底下评论,感谢大家百忙之中的回复

    2020-09-03
    有用
    回复
登录 后发表内容
问题标签