微信小程序 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 相关文章推荐
用JavaScript显示随机图像或引用
Apr 21 Javascript
一个cssQuery对象 javascript脚本实现代码
Jul 21 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
Aug 30 Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
input file上传 图片预览功能实例代码
Oct 25 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
详解angular脏检查原理及伪代码实现
Jun 08 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
Element Badge标记的使用方法
Jul 27 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
python分割列表(list)的方法示例
2017/05/07 Python
Python学生信息管理系统修改版
2018/03/13 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
如何使用python写截屏小工具
2020/09/29 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
竞选演讲稿范文
2013/12/28 职场文书
电子商务专业求职信
2014/03/08 职场文书
售房委托书
2014/08/30 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
销售经理岗位职责
2015/01/31 职场文书
单位更名证明
2015/06/18 职场文书
工作计划范文之财务管理
2019/08/09 职场文书