微信小程序Getuserinfo解决方案图解


Posted in Javascript onAugust 24, 2018

问题

在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息,然而为了安全考虑,从2018年4月30号开始,wx.getUserInfo接口不能直接调用(接口调整),需要使用<button open-type="getUserInfo"></button> 引导用户主动进行授权操作,意外就是来的这么突然,防不胜防!!!

微信小程序Getuserinfo解决方案图解

处理方法

1、<open-data></open-data> :只是简单的获取信息用于显示

微信小程序Getuserinfo解决方案图解

其中,type="userAvatarUrl"是获取用户头像,type="userNickName"是获取用户昵称,具体使用详情查看小程序开发文档,此方法仅用于直接简单的展示用户信息。

2、使用 <button open-type="getUserInfo">获取用户信息

小程序官方文档有在说明wx.getUserInfo 当用户未授权过,调用该接口将直接报错,即使调用该接口将直接jinru进入fail的回调; 当用户授权过,可以使用该接口获取用户信息。

微信小程序Getuserinfo解决方案图解

但是,如何有更好的用户体验来引导用户手动调用此方法呢?这里思考了几种实现方案:

1、在项目首页直接调用getUserInfo方法,若从未授权过,跳转到授权页面引导用户手动授权

微信小程序Getuserinfo解决方案图解

在授权页面authorize 写入按钮组件

微信小程序Getuserinfo解决方案图解

并在js中,加入手动点击按钮的方法,返回首页

微信小程序Getuserinfo解决方案图解

此方案可行,但是授权页面就一个授权的按钮未免显得突兀些,进一步做优化方案。

考虑到是不是能够直接通过条件渲染wx-if 在首页多加一部分遮罩层作为引导用户授权的页面展示,因为用户使用小程序一经授权以后,再次进入小程序就不用授权了,也就是说只有在用户第一次使用小程序的时候才会引导用户授权操作,所以这里考虑通过遮罩层来实现。

在首页多加一个遮罩层

微信小程序Getuserinfo解决方案图解

同时查阅微信小程序开发文档在页面加载后调用wx.getSetting方法可以获取当前用户的设置,返回值中只会出现小程序已经向用户请求过的权限,这样可以判断用户是否授权过权限

微信小程序Getuserinfo解决方案图解

未授权授权遮罩层显示

微信小程序Getuserinfo解决方案图解 微信小程序Getuserinfo解决方案图解

引导用户授权后

hasUserInfo: true

遮罩层消失,完成授权。

微信修改getUSerInfo这个接口后确实不如之前直接进入小程序自动调用获取用户信息方便些,但是确实是为了加强安全性的考究,才通过按钮的方式让用户自己主动去授权,虽然对于开发者我们来讲不太习惯,但是对于加强了用户信息的安全性,网络信息安全确实是比较重要的一环。

总结

以上所述是小编给大家介绍的微信小程序Getuserinfo解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 密码强度判断代码
Sep 05 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
教你如何在Node.js中使用jQuery
Aug 28 Javascript
详解React 16 中的异常处理
Jul 28 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
Dec 09 Javascript
Vuex 进阶之模块化组织详解
Jan 12 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
详解vue 命名视图
Aug 14 Javascript
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 #Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 #Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 #Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 #Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 #Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 #Javascript
vue中使用gojs/jointjs的示例代码
Aug 24 #Javascript
You might like
动态新闻发布的实现及其技巧
2006/10/09 PHP
模拟flock实现文件锁定
2007/02/14 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
PHP echo()函数讲解
2019/02/15 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
postman和python mock测试过程图解
2020/02/22 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
Spring整合Mybatis的全过程
2021/06/28 Java/Android