微信小程序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的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
Aug 30 Javascript
键盘KeyCode值列表汇总
Nov 26 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 jQuery
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
Nov 21 Javascript
js中Array对象的常用遍历方法详解
Jan 17 Javascript
详解vue-element Tree树形控件填坑路
Mar 26 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 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
菜鸟修复电子管记
2021/03/02 无线电
使用php+xslt在windows平台上
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php for 循环使用的简单实例
2016/06/02 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
jquery延迟加载外部js实现代码
2013/01/11 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
python使用RNN实现文本分类
2018/05/24 Python
python3中zip()函数使用详解
2018/06/29 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
家庭户外服装:Hawkshead
2017/11/02 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
出纳员岗位职责
2014/03/13 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015年人事科工作总结
2015/04/28 职场文书
学生犯错保证书
2015/05/09 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
MySQL创建管理KEY分区
2022/04/13 MySQL
Python中time标准库的使用教程
2022/04/13 Python