微信小程序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 attachEvent和addEventListener使用方法
Mar 19 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
Mar 02 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
Sep 06 Javascript
JavaScript实现算术平方根算法-代码超简单
Sep 11 Javascript
Javascript简单实现面向对象编程继承实例代码
Nov 27 Javascript
vue组件间通信解析
Mar 01 Javascript
vue 实现通过手机发送短信验证码注册功能
Apr 19 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
node.js自动上传ftp的脚本分享
Jun 16 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
解决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支持页面回退的两种方法[转]
2007/02/14 PHP
php 分库分表hash算法
2009/11/12 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
php生成HTML文件的类方法
2019/10/11 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
简单了解Python matplotlib线的属性
2019/06/29 Python
python基于Selenium的web自动化框架
2019/07/14 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
计算机毕业大学生推荐信
2013/12/01 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
保证书范文大全
2014/04/28 职场文书
现场活动策划方案
2014/08/22 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
中国世界遗产导游词
2015/02/13 职场文书
三十年同学聚会感言
2015/07/30 职场文书
房产遗嘱范本
2015/08/06 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
自荐信范文
2019/05/20 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python