|
微信小程序在请求授权的时候,如果用户拒绝,那么下次点击后不会有反应,需要等待一定时间后才可以重新发起请求,那么这种情况下我们要做另外处理,也有误点的情况下我们要做好这方面的兼容,以下代码是我个人分享的,高手就飞过了吧~
[JavaScript] 纯文本查看 复制代码 //授权登录 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() } }) } }
这个原理就是 如果允许授权则直接成功,如果拒绝,那么下次再点的话就调用起设置页面,然后如果再次允许则再次授权
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|