微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析


Posted in Javascript onMay 03, 2019

本文实例讲述了微信小程序获取用户信息的两种方法wx.getUserInfo与open-data。分享给大家供大家参考,具体如下:

在此之前,小程序获取微信的头像,昵称之类的用户信息,我用的都是wx.getUserInfo,例如:

onLoad: function (options) {
  var that = this;
  //获取用户信息
  wx.getUserInfo({
    success: function (res) {
      console.log(res);
      that.data.userInfo = res.userInfo;
      that.setData({
        userInfo: that.data.userInfo
      })
    }
  })
},

wx.getUserInfo需要用户授权scope.userInfo,也就是那个授权弹窗。

微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析

但是!!!重点来了,自从微信接口有了新的调整之后 这个wx.getUserInfo()便不再出现授权弹窗了,需要使用button做引导~

<!--wxml-->
<!-- 需要使用 button 来授权登录 -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
<view wx:else>请升级微信版本</view>

js:

Page({
 data: {
  canIUse: wx.canIUse('button.open-type.getUserInfo')
 },
 onLoad: function() {
  // 查看是否授权
  wx.getSetting({
   success: function(res){
    if (res.authSetting['scope.userInfo']) {
     // 已经授权,可以直接调用 getUserInfo 获取头像昵称
     wx.getUserInfo({
      success: function(res) {
       console.log(res.userInfo)
      }
     })
    }
   }
  })
 },
 bindGetUserInfo: function(e) {
  console.log(e.detail.userInfo)
 }
})

这就是等于一步变两步了~现在用button的话 可以在产品上多加引导,不会显得那么突兀的出来一个弹窗了

然鹅,如果你仅仅只是想展示用户信息的话,那便使用open-data 吧,如下:

<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 -->
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>

只需要这两行wxml的代码,便可展示微信昵称和头像,是不是很惊喜!

微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析

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

Javascript 相关文章推荐
hover的用法及live的用法介绍(鼠标悬停效果)
Mar 29 Javascript
我的Node.js学习之路(四)--单元测试
Jul 06 Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
js创建对象的方法汇总
Jan 07 Javascript
JavaScript中点击事件的写法
Jun 28 Javascript
JS函数节流和函数防抖问题分析
Dec 18 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
Dec 28 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 Javascript
一百行JS代码实现一个校验工具
Apr 30 Javascript
js中switch语句的学习笔记
Mar 25 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
Oct 28 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 #Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
May 02 #Javascript
详解微信小程序缓存--缓存时效性
May 02 #Javascript
详解如何使用router-link对象方式传递参数?
May 02 #Javascript
详解Vue底部导航栏组件
May 02 #Javascript
微信小程序搭建自己的Https服务器
May 02 #Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
May 02 #Javascript
You might like
网络资源
2006/10/09 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php封装的验证码类分享
2017/02/26 PHP
表单JS弹出填写提示效果代码
2011/04/16 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
详解python eval函数的妙用
2017/11/16 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
数控机械专业个人的自我评价
2014/01/02 职场文书
社区国庆节活动方案
2014/02/05 职场文书
国旗下演讲稿
2014/05/08 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
Vue如何实现组件间通信
2021/05/15 Vue.js
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL