微信小程序 wx.getUserInfo引导用户授权问题实例分析


Posted in Javascript onMarch 09, 2020

本文实例讲述了微信小程序 wx.getUserInfo引导用户授权问题。分享给大家供大家参考,具体如下:

首先,在page外定义一个函数用户判断是否为空对象

var isEmptyObject = function (e) {
 var temp;
 for (temp in e)
  return !1;
 return !0
}

然后,在page中的onload里面调用授权

onLoad: function () {
  var that = this;
  if (app.globalData.userInfo) {
   this.setData({
    userInfo: app.globalData.userInfo
   })
  } else if (this.data.canIUse) {
   // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
   // 所以此处加入 callback 以防止这种情况
   app.userInfoReadyCallback = res => {
    this.setData({
     userInfo: res.userInfo
    })
   }
  } else {
   // 在没有 open-type=getUserInfo 版本的兼容处理
   wx.getUserInfo({
    success: res => {
     app.globalData.userInfo = res.userInfo
     this.setData({
      userInfo: res.userInfo
     })
     that.checkSettingStatu();
    },
    fail: function () {
     wx.showModal({
      title: '用户未授权',
      content: '如需正常使用该小程序功能,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
      showCancel: false,
      success: function (resbtn) {
       if (resbtn.confirm) {
        wx.openSetting({
         success: function success(resopen) {
          // 获取用户数据
          that.checkSettingStatu();
         }
        });
       }
      }
     })
    }
   })
  }
 }

最后,在page中定义一个 用于检测 当前授权的状态

checkSettingStatu: function (cb) {
  var that = this;
  // 判断是否是第一次授权,非第一次授权且授权失败则进行提醒
  wx.getSetting({
   success: function success(res) {
    var authSetting = res.authSetting;
    if (isEmptyObject(authSetting)) {
        //第一次
    } else {
     // 没有授权的提醒
     if (authSetting['scope.userInfo'] === false) {
      wx.showModal({
       title: '用户未授权',
       content: '如需正常使用该小程序功能,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
       showCancel: false,
       success: function (res) {
        if (res.confirm) {
         wx.openSetting({
          success: function success(res) {
           console.log()
          }
         });
        }
       }
      })
     } else if (authSetting['scope.userInfo'] === true) {
           //该处用户获取用户的一些授权信息
      if (that.data.userInfo) {
       var nickname = that.data.userInfo.nickName;
       var gender = that.data.userInfo.gender
       //性别 0:未知、1:男、2:女
       if (gender == 1) {
        gender = "True"
       } else if (gender == 2) {
        gender = "False"
       } else {
        gender = "True"
       }
     
      }
     }
    }
   }
  })
 }

简单的记录,不喜勿喷。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
javascript 浏览器检测代码精简版
Mar 04 Javascript
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
jQuery实现单行文字间歇向上滚动源代码
Jun 02 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
Nov 09 Javascript
基于Vue的移动端图片裁剪组件功能
Nov 28 Javascript
搭建element-ui的Vue前端工程操作实例
Feb 23 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
Vue项目中跨域问题解决方案
Jun 05 Javascript
从组件封装看Vue的作用域插槽的实现
Feb 12 Javascript
JavaScript this关键字的深入详解
Jan 14 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 #Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 #Javascript
JS中的const命令你真懂它吗
Mar 08 #Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 #Javascript
Vue vm.$attrs使用场景详解
Mar 08 #Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 #Javascript
vue-cli点击实现全屏功能
Mar 07 #Javascript
You might like
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
php实现Session存储到Redis
2015/11/11 PHP
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python配置文件处理的方法教程
2019/08/29 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
文艺演出策划方案
2014/06/07 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
党性分析材料格式
2014/12/19 职场文书
农村党支部承诺书
2015/04/30 职场文书
公司表扬信格式
2015/05/04 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书