博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序获取用户信息“授权失败”场景的处理
阅读量:4353 次
发布时间:2019-06-07

本文共 2588 字,大约阅读时间需要 8 分钟。

很多的时候我们在处理小程序功能的时候需要用户获取用户信息,但是呢为了信息安全,用户不授权导致授权失败场景;但是小程序第二次不在启动授权信息弹层,为了用户体验,可以用以下方式处理:

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  }

 

转载于:https://www.cnblogs.com/changxue/p/8309607.html

你可能感兴趣的文章
一个漂亮的 PlaceHolder
查看>>
jq 中.html(),.text()和.val()的总结
查看>>
ACE OLEDB 12.0连接方式
查看>>
Stack,( Aizu - ALDS1_3_A)
查看>>
javascript_17-基本类型和引用类型
查看>>
django paginator 分页功能
查看>>
java arrayList vector 区别
查看>>
测试思想-文档评审 关于需求评审
查看>>
poj 1035 纯正的字符串水
查看>>
Spring Shiro配置第三方SSO客户端登录
查看>>
mybatis逆向工程之动态web项目
查看>>
pip问题解决方案
查看>>
iphone手机连接USB时出现须要Mobile device setup disk上的usbaapl.sys文件
查看>>
一步一步教你在 Android 里创建自己的账号系统(一)
查看>>
巧妇能为少米之炊(1)——Android下小内存下的生存之道
查看>>
使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916 - z...
查看>>
我的四轴专用PID参数整定方法及原理---超长文慎入(转)
查看>>
潜意识
查看>>
sharepoint中查询列表绑定gridview
查看>>
管理最大困境:既想有效率,又怕得罪人
查看>>