很多的时候我们在处理小程序功能的时候需要用户获取用户信息,但是为了信息安全,用户不授权导致授权失败场景;但是小程序第二次不在启动授权信息弹层,为了用户体验,可以用以下方式处理:
function isEmptyObject(e) {//对象是否为空;判断是否是第一次授权,非第一次授权且授权失败则进行提醒var t;for (t in e)return !1;return !0} function checkSettingStatu(cb) {//授权处理var that = this;// 判断是否是第一次授权,非第一次授权且授权失败则进行提醒 wx.getSetting({ success: function success(res) {var authSetting = res.authSetting;if (isEmptyObject(authSetting)) {// console.log('首次授权');} else {// console.log('不是第一次授权', authSetting);// 没有授权的提醒if (authSetting['scope.userInfo'] === false) { wx.showModal({ title: '用户未授权', content: '如需正常使用此小程序功能,请您按确定并在设置页面授权用户信息', showCancel: false, success: function (res) {// 此处为了用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭省去了res.confirm,res.cancel判断// 点击蒙层同样触发开启设置 wx.openSetting({ success: function success(res) {if (res.authSetting['scope.userInfo'] === false) { checkSettingStatu(cb);} else { userinfor();}}});}})}}}});}function userinfor(){//获取用户信息 wx.login({ success: function (res) {var code = res.code;if (res.code) { wx.getUserInfo({ fail: function (res) { checkSettingStatu();}, success: function (data) {var encryptedData = data.encryptedData;var iv = data.iv; wx.request({ url: 'XXXX', data: {"json": JSON.stringify({"type": "small_wechat_new","code": code,"encryptedData": encryptedData,"iv": iv})}, method: 'POST', header: {'content-type': 'application/x-www-form-urlencoded'}, success: function (res) {//wx.setStorageSync('user_id', res.data.data.user_id);//wx.setStorageSync('token', res.data.data.token);//wx.setStorageSync('avatar', res.data.data.avatar);//wx.setStorageSync('nickname', res.data.data.nickname);}})}})}}})}module.exports = { checkSettingStatu: checkSettingStatu, userinfor: userinfor}原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。