xiaoxiao 发表于 2022-5-31 17:44:12

微信小程序拒绝授权情况处理

微信小程序在请求授权的时候,如果用户拒绝,那么下次点击后不会有反应,需要等待一定时间后才可以重新发起请求,那么这种情况下我们要做另外处理,也有误点的情况下我们要做好这方面的兼容,以下代码是我个人分享的,高手就飞过了吧~

纯文本查看 复制代码//授权登录wxLogin: function () {    var that = this    var userkey = wx.getStorageSync('user_key')    if (!userkey) {      //调用登录接口      wx.showLoading({ title: '授权用户信息' })      wx.login({      success: function (res) {          var code = res['code']          wx.getUserInfo({            success: function (info) {            var types = 'login'            var sid = that.globalData.scene            var iv = info.iv            var encryptedData = info.encryptedData            var sign = utilSha1.hex_sha1('jzwl006' + types + sid + iv + code + encryptedData + that.globalData.encryptKey)            if (typeof code != "undefined" && typeof encryptedData != "undefined" && typeof iv != "undefined") {                wx.request({                  url: that.globalData.dataUrl + 'GetMember',                  method: 'POST',                  data: {                  type: types,                  sid: sid,                  code: code,                  iv: iv,                  encryptedData: encryptedData,                  sign: sign                  },                  header: {                  'Content-Type': 'application/x-www-form-urlencoded'                  },                  success: function (res) {                  var code = res.data.code                  if (code == 200) {                      var userkey = res.data.userkey                      if (userkey){                        wx.setStorageSync('user_key', userkey)                        wx.showToast({ title: '获取成功', icon: 'success', duration: 2000 })                      }else{                        wx.showToast({ title: '获取失败', image: '../../images/cross1.png', duration: 2000 })                      }                  }                  }                })            }            },            fail: function () {            wx.showModal({                title: '提示',                content: '请先设置允许我们获得您的公开信息',                confirmText: '去设置',                success: function (res) {                  if (res.confirm) {                  wx.openSetting({                      success: (res) => {                        if (res.authSetting["scope.userInfo"] == true) {                        that.wxLogin()                        }                        res.authSetting = {                        "scope.userInfo": true                        }                      }                  })                  }                }            })            },            complete: function () {            wx.hideLoading()            }          })      },      complete: function () {          wx.hideLoading()      }      })    }}

这个原理就是 如果允许授权则直接成功,如果拒绝,那么下次再点的话就调用起设置页面,然后如果再次允许则再次授权

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

快乐的鱼 发表于 2022-5-31 19:04:56

挺好,实用代码,下次可以分享点其他的实用片断
页: [1]
查看完整版本: 微信小程序拒绝授权情况处理