微信小程序——常用功能2:申请用户授权并获取用户基本信息

为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面、给用户划分地域、给用户分类等功能。
但是要想获取用户信息的前提,就是我们需要先向用户申请授权。
当用户第一次进入小程序时,微信会自动申请用户授权,之后就进行申请。所以我们在需要授权操作的时候需要主动向用户申请授权。
所以今天的主要内容有两个:1.申请用户授权。2.获取用户基本信息。

如何新建小程序页面?查看往期文章微信小程序云开发——常用功能1:使用云函数获取用户openid,并1.加载到视图层 和2.缓存到本地

1.申请用户授权

微信调用接口:
1.wx.getSetting() 查看用户是否授权
2.用户授权 跳转申请用户授权页面

2.获取用户基本信息

微信调用接口:wx.getUserInfo()
js:

// 必须是在用户已经授权的情况下调用wx.getUserInfo({wx.getUserInfo({     success: function(res) {var userInfo = res.userInfo //获取所有用户信息     console.log('获取用户基本信息数据成功',userInfo) //显示获取结果到调试器var nickName = userInfo.nickName //获取用户昵称var avatarUrl = userInfo.avatarUrl //获取用户头像链接var gender = userInfo.gender //获取用户性别 0:未知、1:男、2:女var province = userInfo.province //获取用户省var city = userInfo.city //获取用户市var country = userInfo.country //获取用户国家}

开始融合两个功能进行讲解:

逻辑:

因为只要点击跳转按钮就会跳转到用户授权页面,所以我们要增加一个方法,当用户已授权就不会跳转到用户授权页面,当用户没有授权时再跳转到有用户授权按钮的页面。

需要的页面:

1.我们的当前操作页面(pages/first/first)。查询用户是否已授权,如果已授权,直接进入首页,如果没有授权,跳转到授权页面 page/first/shouquan。
2.授权页面(pages/first/shouquan)。请求让用户开启授权。

方法(所有代码+讲解,大家可以直接复制到微信开发者工具进行研究):

使用代码之前先将我们的授权方式改成“不适用我的用户信息”,开发者工具里边的样式不太好看,但大家可以用手机真机调试一下,可以看到正常的页面,挺好看的窝窝头一块钱四个嘿嘿

wxml(pages/first/first):

<view wx:if="{{!loginOK}}" style="width:350px;text-align: center;"><image class="touxiang" src="{{touxiang}}">image><view class="yonghuming">{{yonghuming}}view><view class="suozaidi">{{suozaidi}}view><button type="primary" bindtap="login">用户授权button><button type="primary" open-type="openSetting">用户授权button>view><view wx:else>  欢迎来到我的小程序:)view>

wxml(page/first/shouquan):

<button type="primary" open-type="openSetting">用户授权button>

css(pages/first/first)

/* pages/first/first.wxss */.touxiang{width: 100px;height: 100px;border-radius: 500px;background: red;

margin-top: 140px;}.yonghuming{font-size: 14px;margin-top: 20px;margin-bottom: 20px;}.suozaidi{font-size: 14px;margin-top: 10px;margin-bottom: 60px;}

js(pages/first/first)

// pages/first/first.jsPage({

/**   * 页面的初始数据   */  data: {    yonghuming: '用户名',    touxiang: '',    suozaidi: '微信显示所在地区',    loginOK: false,},

login(){ //点击按钮调用该方法let that = this  //将当前页面全局数据this放到当前login方法的that变量中

//查询用户登录状态接口的调用    wx.getSetting({ success(res){        console.log("查询用户登录状态成功",res) //打印调用接口结果//在调试器console中找到结果,打开后发现在res中authSetting数组下的scope.userInfo是用户登录状态

if(res.authSetting['scope.userInfo']){ //如果res.authSetting['scope.userInfo']为true          console.log("用户已授权")          that.setData({  //使用that变量            loginOK:true //将用户登录状态设置为true,默认为false})

//用户授权成功后,查询用户信息          wx.getUserInfo({             success: function(res) {var userInfo = res.userInfo //获取所有用户信息              console.log('获取用户基本信息数据成功',userInfo) //显示获取结果到调试器

//将获取到的内容缓存到本地storage,方便日后在其他页面调用查询              wx.setStorage({                 data: {                  nickName: userInfo.nickName, //获取用户昵称                  avatarUrl: userInfo.avatarUrl, //获取用户头像链接                  gender: userInfo.gender, //获取用户性别 0:未知、1:男、2:女                  province: userInfo.province, //获取用户省                  city: userInfo.city, //获取用户市                  country: userInfo.country, //获取用户国家},                key: 'userInfo',})

}})

}else{ //如果res.authSetting['scope.userInfo']为false          console.log("用户未授权")          wx.navigateTo({            url: '../first/shouquan', //跳转到授权页面})}}})

},

})

setData()方法如何使用:查看往期文章

setStorage()方法如何使用:查看往期文章微信小程序云开发——常用功能1:使用云函数获取用户openid,并1.加载到视图层 和2.缓存到本地

wx:if显示用户登录状态逻辑如何使用:查看往期文章微信小程序——常用功能1:使用wx:if逻辑,根据data视图层在相同页面显示不同数据

登录页面:

用户授权页面就一个按钮:
还看什么呢,赶紧试试吧!记得打开调试器随时查看变化。

我不是专业程序工作者,在这里是把我的小程序设计经验分享给大家。
如果其中有用词不当的地方,请大家留言指正,我们共同学习。
更多设计、功能的学习经验,大家也可以去我的公众号查看!
————

vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...相关推荐

  1. php 微信打赏功能,微信打赏是什么功能?微信怎么打赏?

    大家都知道现在微信开通了打赏功能,很多人都想利用打赏功能来获得收益,那么这个微信打赏是什么功能,微信打赏功能是什么,微信打赏功能怎么用很多人却是不知道的,那下面小编就给大家具体说说这个步骤,记得来看看 ...

  2. 在微信中朋友圈功能对于微信的价值是什么?

    在微信中朋友圈功能对于微信的价值是什么? 微信的定位就是一款社交产品,包含三大模块:聊天.朋友圈.公众号 1.对于社交来说,朋友圈是一种高效快捷的社交方式 了解朋友动态 点赞评论简单的互动形式,还能表 ...

  3. 猜歌小游戏多功能组合微信小程序源码下载

    这是一款多功能游戏组合的一款小程序 比如猜歌,摇骰子,真心话大冒险等等 php7.2 mysql5.6 1.上微擎框架 2.将后台两个压缩包上传到addons目录下解压 创建小程序应用 3.后台设置一 ...

  4. 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...

    一.先言: (- ̄▽ ̄)-,hello,微信小程序系列第二篇,介绍下小程序里的前端常用功能api,可以快速copy使用~ 二.文字可复制: 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实 ...

  5. 微信小程序常用功能总结(持续更新中~)

    分享我在商城类微信小程序项目中用到的功能~(uniapp) 1. 分享小程序某个页面到微信好友或群聊 onShareAppMessage() {let imagePath = 'https://tid ...

  6. 10行代码实现微信小程序支付功能,使用小程序云开发实现小程序支付功能(含源码

    前面给大家讲过一个借助小程序云开发实现微信支付的,但是那个操作稍微有点繁琐,并且还会经常出现问题,今天就给大家讲一个简单的,并且借助官方支付api实现小程序支付功能. 传送门 借助小程序云开发实现小程 ...

  7. node 压缩图片_推荐10个常用的图片处理小帮手(下)「值得收藏」

    作者: semlinker 转发链接:https://mp.weixin.qq.com/s/i3ynTtPJOECoAYfqHFoo3Q 前言 本文给小伙伴们隆重介绍用于图片处理的十个 「" ...

  8. ASP.NET 2.0关于用户登录限制问题实例:防止同一用户同时登陆

    要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开 ...

  9. 达梦数据库操作记录_达梦数据库常用功能及命令记录 -- 持续更新

    达梦数据库常用功能及命令记录 -- 持续更新 达梦数据库常用功能及命令记录 达梦数据库语句的使用总体来说跟 oracle 很接近的, 这篇文章主要是把常用的情况和语句做了记录, 并且后续还会不断的持续 ...

最新文章

  1. 「完结」12篇文章带你逛遍主流分割网络
  2. 表中重复记录的一些常用脚本
  3. have sb do / have sb doing / have sth dong 区别
  4. 读债务危机0824:随笔
  5. 三款ActiveX图表控件对比评测 TeeChart VS ProEssentials…
  6. Word/Excel文档伪装病毒-kspoold.exe分析
  7. linux下查看无线网卡的命令,lspci命令可看无线网卡 ifconfig看不到 如何操作
  8. 一句话木马绕过linux安全模式,一句话木马(webshell)是如何执行命令的
  9. 深度学习(参数选择)
  10. visual studio 设计器不显示_设计模式 | Iterator设计模式
  11. 下单送奖励金的实现思路
  12. powershell自动化操作AD域、Exchange邮箱系列(9)—导出AD内所有计算机到数据库
  13. 思维改变生活:不需要经历也能明白
  14. gridview中手工排序
  15. 【版本控制】如何从github 上获取源码
  16. 你真的懂JavaScript基础类型吗
  17. 小说全自动采集详细过程-支持各大开源小说CMS采集
  18. IP 协议报文格式 【IPv4】
  19. 物业为什么要用微小区SaaS系统进行管理
  20. PreparedStatement防止SQL注入

热门文章

  1. 《AutoCAD 2014中文版超级学习手册》——1.4 配置绘图系统
  2. 聊天IM的时间戳显示规则
  3. mysql之旅【第一篇】
  4. 快速计算--斐波那契数列
  5. CentOS7默认的防火墙不是iptables,而是firewalle.
  6. 转-Android仿微信气泡聊天界面设计
  7. AWK 高端大气上档次
  8. linux系统rootkit恶意软件安全检测工具rkhunter安装部署、使用详解
  9. VDI中创建集合时使用Sysprep应答文件碰到的问题
  10. php 服务器 mac地址吗,php获取服务器端mac和客户端mac的地址