微信小程序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 select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
Dec 19 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
js验证模型自我实现的具体方法
Jun 21 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 Javascript
JavaScript仿flash遮罩动画效果
Jun 15 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
JS高级技巧(简洁版)
Jul 29 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
Jun 19 jQuery
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 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
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
JavaScript 图像动画的小demo
2012/05/23 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
python实现提取百度搜索结果的方法
2015/05/19 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python-for循环的内部机制
2020/06/12 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
医大实习自我鉴定
2013/12/07 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
初中语文教学反思
2014/02/02 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
人民币使用说明书
2019/04/17 职场文书
javascript的setTimeout()使用方法总结
2021/11/20 Javascript