微信小程序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 相关文章推荐
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
Javascript 实现的数独解题算法网页实例
Oct 15 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
JSON遍历方式实例总结
Dec 07 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
Feb 25 Javascript
js插件dropload上拉下滑加载数据实例解析
Jul 27 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
微信小程序删除处理详解
Aug 16 Javascript
基于require.js的使用(实例讲解)
Sep 07 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
Dec 13 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 Javascript
react实现复选框全选和反选组件效果
Aug 25 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
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
一则python3的简单爬虫代码
2014/05/26 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python列表与元组的异同详解
2019/07/02 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
化学教师自荐信范文
2013/12/28 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
单位工作证明范文
2014/09/14 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
网络舆情信息简报
2015/07/21 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书