微信小程序-getUserInfo回调的实例详解


Posted in Javascript onOctober 27, 2017

微信小程序-getUserInfo回调的实例详解

前言:

这里就不吹嘘微信小程序有多厉害了,毕竟也不是我写的,直接谈谈我在做小程序开发时遇到的奇异Bug。

getUserInfo多次调用:

对于wx.getUserInfo应该很多开发者都用过,用于获取用户基本信息,前提是需要用户授权,如果用户先前没有授权,则弹出一个提示框如下:

微信小程序-getUserInfo回调的实例详解

点击允许后,我们就能拿到用户信息,再进行后面的一系列操作。这一切看起来都是那么美好,可是在某次运行中,点允许授权后,程序并没有按照我们的预期往下执行。最后发现在其他的地方也调用一次了wx.getUserInfo方法,并且只执行了其中一个授权成功的回调。假设是如下代码:

微信小程序-getUserInfo回调的实例详解

结论:

1. 如果用户已授权: A B C都会被打印。

2. 用户未授权:点击允许后,A B C三个其一会被随机打印。

当然最好不要在多处同时调用wx.getUserInfo方法,不然遇到这个问题会很头疼。我对这个问题的看法是,多次调用getUserInfo方法只会产生一个弹窗的实例,所以点击允许时,只执行一次回调也很正常,但是随机执行其中一个方法就很奇怪了。

解决方法:

1. 不同时调用wx.getUserInfo方法,需要同时调用的情况少之又少。

2. 封装一个getUserInfo方法,把传入的回调方法存入数组,在授权成功/失败的回调中遍历调用后清空数组。

以下是测试环境:

微信开发者工具版本:v1.01.170925

基础库版本: 1.3.0

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
Jquery如何实现点击时高亮显示代码
Jan 22 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
javascript处理a标签超链接默认事件的方法
Jun 29 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
Javascript的表单与验证-非空验证
Mar 18 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 #Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 #Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 #jQuery
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 #Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 #Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 #Javascript
vue中v-model动态生成的实例详解
Oct 27 #Javascript
You might like
非常好的php目录导航文件代码
2006/10/09 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python中Continue语句的用法的举例详解
2015/05/14 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
几款好用的python工具库(小结)
2020/10/20 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
两道JAVA笔试题
2016/09/14 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
外贸主管求职简历的自我评价
2013/10/23 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
优秀团员事迹材料
2014/12/25 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
mysql事务隔离级别详情
2021/10/24 MySQL
MySQL池化框架学习接池自定义
2022/07/23 MySQL