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

 更新时间:2020年03月09日 08:42:48   作者:WFaceBoss  
这篇文章主要介绍了微信小程序 wx.getUserInfo引导用户授权问题,结合实例形式分析了微信小程序使用wx.getUserInfo引导用户授权问题的具体操作步骤与实现方法,需要的朋友可以参考下

本文实例讲述了微信小程序 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"
       }
     
      }
     }
    }
   }
  })
 }

简单的记录,不喜勿喷。

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

相关文章

  • js仿3366小游戏选字游戏

    js仿3366小游戏选字游戏

    这篇文章主要为大家详细介绍了js仿3366小游戏选字游戏
    2016-04-04
  • 原生JS下拉加载插件分享

    原生JS下拉加载插件分享

    本文主要分享了原生JS下拉加载插件的实现代码。具有一定的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • js 回车提交表单两种实现方法

    js 回车提交表单两种实现方法

    js 回车提交一些新手朋友还是比较陌生的,本文介绍两种实现方法:jQuery方法、JavaScript方法,感兴趣的朋友可以研究下
    2012-12-12
  • 微信小程序实战教程之WXS语法详解

    微信小程序实战教程之WXS语法详解

    WXS是小程序的一套脚本语言,结合 WXML,wxs类似js和js又不一样,好多js语法能在js使用不能在wxs使用可以构建出页面的结构,这篇文章主要给大家介绍了关于微信小程序实战教程之WXS语法详解的相关资料,需要的朋友可以参考下
    2024-09-09
  • 简单的js分页脚本

    简单的js分页脚本

    js分页脚本实现代码。
    2009-05-05
  • JS监听事件的叠加和移除功能

    JS监听事件的叠加和移除功能

    这篇文章主要介绍了JS监听事件的叠加和移除功能,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-11-11
  • 让JavaScript和其它资源并发下载的方法

    让JavaScript和其它资源并发下载的方法

    这篇文章主要介绍了让JavaScript和其它资源并发下载的方法,JavaScript并发下载主要目的在于解决JS加载会阻碍页面呈现的问题,需要的朋友可以参考下
    2014-10-10
  • canvas实现图像截取功能

    canvas实现图像截取功能

    这篇文章主要为大家详细介绍了canvas实现图像截取功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JS定时器使用,定时定点,固定时刻,循环执行详解

    JS定时器使用,定时定点,固定时刻,循环执行详解

    下面小编就为大家带来一篇JS定时器使用,定时定点,固定时刻,循环执行详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JavaScript中ES6字符串扩展方法

    JavaScript中ES6字符串扩展方法

    这篇文章主要介绍了JavaScript中ES6字符串扩展方法的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-08-08

最新评论