同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API。

在微信小程序中,我们往往需要获取用户的身份信息,比如昵称、头像、性别、地区等。要得到这些信息,就需要我们调用获取用户信息的api了。在小程序中,微信非常重视对用户隐私的保护,因此有很多关于获取用户信息的规范,比如获取信息需要用户授权,这使得我们获取信息的api比其他的api要更加复杂。

大家可以打开微信开发者文档,找到api,在左侧列出的所有api中找到开放接口,在其中找到用户信息,或者通过这里的学习链接进行访问,我们可以更细节地了解和学习整个过程。

相信大家都见过右侧图片中所展示的界面,在使用很多小程序的时候都遇见过。这就是授权的界面,只有用户点击允许,我们才能拿到用户信息。此外,这个授权是有时效的,即一段时间内不会重复让你授权很多次。

对于一个需要用户信息才能完成需求功能的小程序来说,一般,我们将获取用户信息放在这个小程序所有功能第一步来实现,这样就可以省去在每次需要用户信息的功能开始前都要进行检查的麻烦,相当于在小程序开始使用之前,就已经准备好了相关的信息,然后再开始执行小程序。就像大家坐火车或者飞机一样,在进入车站的时候进行安检,验证你的身份。那么,当你登上火车后,任何乘务员都不会再担心你的身份,否则,每个乘务员在为你服务的时候都应当首先验证一下你的身份信息。

此外,大家可以看到,在我们获取授权的界面上,微信人性化地提供了拒绝按钮,那么,对于拒绝授权的情况,我们也要有相应的处理方法。大家要始终牢记,我们的目标是在小程序开始使用之前,我必须准备好相关的信息。这就像一道关卡,不合格的人不能开始使用小程序一样。据此我们可以绘制出整个授权部分的流程图。

当用户打开小程序的时候,首先应该检测是否授权,对于已经授权过了的直接放行,那么这里就是调用api获取信息,然后开始正常小程序的功能。对于还未授权的,我们则需要调用api进行授权,那么这里我们使用了一种简单的方法,就是获取后不管结果直接开始和正常进入的流程一样,因为这时如果已经授权,那么再次检查就会通过,如果未授权,那么还是在这个循环里,不会向下进行。当然大家也可以采用其他方法,比如判断授权结果,如果用户点击了允许,那么进入调用api获取信息的流程中,如果点击了拒绝,那么重新获取授权。

对于上述过程,主要涉及到了三部分内容:检测是否授权,调用api获取用户信息和获取授权。对于检测授权这里,我们使用了获取小程序设置的api,在成功函数中的回调参数中,实际上有很多权限内容,比如位置信息、身份信息等,那么我们只检测用户信息这一部分就可以了。这就是if语句的作用,如果条件为真,那么表明已经授权,可以调用获取信息的api了,中间这部分wx.getUserinfo就是获取用户信息的api,此处我们直接一起写了。这就是两个api嵌套调用的样子,通过编译器自动整理的缩进格式,我们能够很清楚地看到层次关系。在获取用户信息的api中,我们在成功函数的参数中就能够读取到用户信息,他存放在userinfo变量中。对于获取授权的接口,在老版本的基础库中是api的格式,但是新版的仅仅支持通过wxml语句的button按钮来获取数据,只要给这个button组件添加open-type属性,当用户在页面点击这个按钮,就会弹出上一页ppt中展示的授权对话框了。但是在我们的ui设计中加入一个授权按钮并不美观,因此,我们一般新建一个页面来单独放置这个button按钮。根据前面的说明,那这个页面要添加到所有页面之前。这个页面实际上才是小程序的第一个页面,一般我们也专门用来做路由,主要处理逻辑代码,比如用户是扫码打开小程序的还是分享打开小程序的,我们在这个页面进行识别,然后分别跳转不同页面。那对于本小程序来说,没有用到那么多功能,但是大家要清楚这个页面的作用。当这个页面完成后,保证所有必要的如用户信息等都准备齐全了,就可以分流到小程序内部的几个页面上了。否则,当分享或者扫码打开小程序进入不同页面时,我都要判断一下身份信息,造成代码的重复,增加了工作量。

那么,我们都能获取到哪些用户信息呢,在userInfo中有下面这一些字段:nickName:用户昵称,avatarUrl:用户头像图片的 URL,gender:用户性别,0表示未知,1表示男性,2表示女性,country:用户所在国家,province:用户所在省份,city:用户所在城市,language:显示 country,province,city 所用的语言,en表示英文,zh_CN表示简体中文,zh_TW表示繁体中文。其中,只有gender字段是数字number类型,其余都为string类型。我们使用userInfo加点再加这几个属性的名称就能够访问或使用这些数据了。

同学们可以发现,小程序api都比较简单,形式是固定的。大家认识了他们以后,直接复制过来修改一下甚至有的连修改都不用就可以使用了。的确如此,但是提醒同学们在使用的时候注意弄清逻辑关系,必要的时候可以绘制流程图来理清思路。

好了,本节课的内容就到这里,我们明天继续。如果大家有什么问题,欢迎在文末留言。

想看视频版?

关注公号“微程序学堂”,我们的视频教程即将上线

如果你自己写了好文章想投稿

请联系我们

uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...相关推荐

  1. 页面url带参数_微信小程序云开发教程微信小程序的JS高级页面间数据传递

    同学们大家好,我是小伊同学,上一节课我们讲解了全局数据的读写方法,那么在页面间同样需要数据交互,今天我们就来学习这部分内容. 在微信小程序中,我们常常需要将数据在页面之间进行传递,比如用户的身份信息, ...

  2. 微信小程序云开发教程-微信小程序框架的介绍

    同学们大家好,我是小伊同学,今天我们来学习微信小程序框架. 微信小程序实质上是一款基于web技术的应用程序,他和我们平常所接触到的前端网页是大同小异的.相同点在于他们使用的开发语言,代码结构以及代码的 ...

  3. ❤️微信小程序 云开发 教程合集(视频+图文)免费❤️

    一.视频版 微信小程序云开发视频教程上线啦 二.图文版 (1)预备知识 1. 怎么注册开通个人微信小程序 2. 微信小程序云开发教程-互联网软件的运作模式 3.微信小程序云开发教程-云开发对微信小程序 ...

  4. 微信小程序云开发成绩查询小程序的制作过程。

    微信小程序云开发成绩查询小程序的制作过程. 如果觉得我讲的好可以点个关注. 明确自己的目的,到底要做一个怎么样的小程序. 我先上效果图: 确定后就可以开始自己布局.主要是用css 1.先看首页,首页主 ...

  5. 基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码

    功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便.随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定). 本代码前后端完整代码包投票列表 ...

  6. 小程序云开发教程七:贴子的详情及评论功能

    我们先看看界面: 我们如果要实现评论功能, 先看一下总的数据结构: 那么需要什么参数呢? 参数如下 comment: 评论内容username: 用户名time: 评论时间userId: 用户idid ...

  7. 小程序云开发实现微信支付,不需要搭建服务器

    一.开发微信支付功能一定要架设服务器吗? 2019年的最后一天,舍得叔叔沉浸在探索的兴奋中,验证了微信小程序云开发也能优雅实现微信支付!小程序的目标是建立一个"serverless" ...

  8. 微信小程序云开发|基于微信小程序实现房产中介平台系统

    作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好处 ...

  9. 微信小程序云开发 mysql_微信小程序云开发学习笔记(一)云数据库

    云开发配置的环境:cloud-learning 云开发环境初始化准备 需要: APPID 操作: 在创建项目时,填入APPID并选择不使用云函数 进入到开发者页面,点击左上角的云开发并选择开通 设置云 ...

最新文章

  1. 企业管理难题:团队协作
  2. shell入门基础必备
  3. 基础连接已经关闭: 无法与远程服务器建立信任关系
  4. java回调函数_PHP回调函数及匿名函数概念与用法详解
  5. python input sys.stdin
  6. Mysql Oracle Tidb对空值的处理
  7. FastHook——实现.dynsym段和.symtab段符号查询
  8. new ArrayList()创建对象提示“索引超出了数组界限”异常分析
  9. sas macro 入门
  10. 施乐700彩机服务器维修,施乐700DCP彩色数码复印机维修手册:700dcp_sc_ver1.1_chap05(208页)-原创力文档...
  11. windows环境下tensorflow手把手安装教程-pip安装
  12. 我的世界服务器怎么无限附魔,我的世界无限附魔书指令
  13. 用VBA程序开发Excel工具
  14. react报错解决 Rendered more fewer hooks than during the previous render
  15. EEG信号分析:关于时频分析方面的个人理解
  16. SIP注册信令消息示范及解释
  17. Mysql日志时间与系统时间相差八小时
  18. 【安卓开发】DrawerLayout+ToolBar报错:DrawerLayout must be measured with MeasureSpec.EXACTLY.
  19. 物联网开发和管理平台 - shifu 了解与学习
  20. 黑客攻入卡巴斯基 杀毒软件遭质疑

热门文章

  1. 关于oracle的基础增删改查操作总结
  2. 2022-2028年中国服装电商行业发展战略规划及投资方向研究报告
  3. 如何读取比机器内存大的文件(内存4G,文件 8G,读取大文件) ?
  4. linux一键安装包
  5. 打算看的书或正在看的书
  6. ICE BOX 配置,使用----第一篇
  7. Oracle Data Guard 理论知识
  8. steam自建服务器游戏_虽有差评销量却还是直步青云,《Atlas》力登Steam榜单前茅...
  9. qlistview 键盘上下键事件_不习惯华为的全面屏导航?教你换回三角键盘导航
  10. 虚拟服务器的运行原理,虚拟机复制的工作原理