微信小程序-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的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
JavaScript中的splice()方法使用详解
Jun 09 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
原生JS轮播图插件
Feb 09 Javascript
vue.js简单配置axios的方法详解
Dec 13 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
微信小程序中如何使用flyio封装网络请求
Jul 03 Javascript
JavaScript的一些小技巧分享
Jan 06 Javascript
vue实现按钮切换图片
Jan 20 Vue.js
vue3不同环境下实现配置代理
May 25 Vue.js
基于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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
javaScript同意等待代码实现心得
2011/01/01 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
python实现堆栈与队列的方法
2015/01/15 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Python实现数值积分方式
2019/11/20 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS