收藏
回答

关于getUserInfo失败和成功都不打印的问题?

小程序开发好之后,几百个人只有三个人wx.getPrivacySetting压根没反应,我做了一个按钮《授权登陆》调下面getUserInfo这个方法,下面是我的代码,请问是我的代码哪里有问题么,还是wx.getPrivacySetting需要额外的加什么东西,还是说有什么稀奇古怪的bug?

getUserInfo: function () {
      const self = this
      wx.getPrivacySetting({
        success(res) {
          console.log(res)
          if (res.errMsg === 'getPrivacySetting:ok') {
            self.privacyContractName = res.privacyContractName
            self.showPrivacy = true
          }
        },
        fail(res) {
          console.log(res)
          self.privacyContractName = '《蜀道生活小程序隐私保护指引》'
          self.showPrivacy = true
        },
      })
    },
    // 打开隐私协议页面
    openPrivacyContract() {
      wx.openPrivacyContract({
        success: (res) => {
          console.log('openPrivacyContract success', res)
        },
        fail: (res) => {
          console.error('openPrivacyContract fail', res)
        },
      })
    },
    // 拒绝隐私协议
    exitMiniProgram() {
      // 直接退出小程序
      wx.exitMiniProgram()
    },
    // 同意隐私协议
    handleAgreePrivacyAuthorization() {
      let self = this
      this.showPrivacy = false
      wx.showModal({
        title: '温馨提示',
        content: '亲,授权微信登录后才能正常使用小程序功能',
        success(res) {
          console.log(res)
          //如果用户点击了确定按钮
          if (res.confirm) {
            wx.getUserProfile({
              desc: '用于完善会员资料',
              success: (res) => {
                console.log(res)
                if (res.errMsg !== 'getUserProfile:ok') {
                  return false
                }
                uni.showLoading({
                  title: '正在登录',
                  mask: true,
                })
                // 执行微信登录
                wx.login({
                  success(res_login) {
                    // 发送用户信息
                    console.log(res_login)
                    self._post(
                      'user.user/login',
                      {
                        code: res_login.code,
                        user_info: res.rawData,
                        encrypted_data: encodeURIComponent(res.encryptedData),
                        iv: encodeURIComponent(res.iv),
                        signature: res.signature,
                        referee_id: uni.getStorageSync('referee_id'),
                        source: 'wx',
                      },
                      (result) => {
                        // 记录token user_id
                        uni.setStorageSync('token', result.data.token)
                        uni.setStorageSync('user_id', result.data.user_id)
                        // 执行回调函数
                        uni.navigateBack()
                      },
                      false,
                      () => {
                        uni.hideLoading()
                      },
                    )
                  },
                })
              },
              fail: (res) => {
                console.error('getUserProfile', res)
              },
            })
          } else if (res.cancel) {
            //如果用户点击了取消按钮
            wx.showToast({
              title: '您拒绝了请求,不能正常使用小程序',
              icon: 'error',
              duration: 2000,
            })
            return
          }
        },
      })
    },
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    01-25

    看看这三个用户的详细信息?

    01-25
    有用
    回复 1
    • WhiteFox🦔
      WhiteFox🦔
      01-26
      getUserInfo: function () {
            const self = this
            try {
              self.isShow = true
              console.log('try')
              wx.getPrivacySetting({
                success(res) {
                  console.log(res)
                  if (res.errMsg === 'getPrivacySetting:ok') {
                    self.privacyContractName = res.privacyContractName
                    self.showPrivacy = true
                  }
                },
                fail(res) {
                  console.log(res)
                  self.privacyContractName = '《蜀道生活小程序隐私保护指引》'
                  self.showPrivacy = true
                },
              })
            } catch {
              self.isShow = false
              console.log('catch')
              self.privacyContractName = '《蜀道生活小程序隐私保护指引》'
              self.showPrivacy = true
            }
          },
      现在这个privacyContractName是写死的,getPrivacySetting有兼容的处理方式么,真接调登录的接口是不可能的,所有的接口都要依赖于同意协议
      01-26
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    01-25

    你没有做兼容处理啊,这三个人的手机,是不是基础库不满足要求

    01-25
    有用
    回复 2
    • WhiteFox🦔
      WhiteFox🦔
      01-26
      getPrivacySetting有兼容的处理方式么,真接调登录的接口是不可能的,所有的接口都要依赖于同意协议,感觉这样处理不太好
      01-26
      回复
    • 那一抹笑😃 穿透阳光
      那一抹笑😃 穿透阳光
      01-27回复WhiteFox🦔
      就判断这个方法存在不啊,或者判断基础库
      01-27
      回复
登录 后发表内容