微信小程序-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 相关文章推荐
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
JavaScript节点及列表操作实例小结
Aug 05 Javascript
jquery结婚电子请柬特效源码分享
Aug 21 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
JS及PHP代码编写八大排序算法
Jul 12 Javascript
js判断价格,必须为数字且不能为负数的实现方法
Oct 07 Javascript
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
Apr 04 Javascript
使用pkg打包ThinkJS项目的方法步骤
Dec 30 Javascript
如何使用vue slot创建一个模态框的实例代码
May 24 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 日志缩略名的创建函数代码
2010/05/26 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
javascript 控制弹出窗口
2007/04/10 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
jquery编写日期选择器
2017/03/16 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python读取并写入mat文件的方法
2019/07/12 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
实习生自我鉴定
2013/12/12 职场文书
追悼会上的答谢词
2014/01/10 职场文书
留守儿童工作方案
2014/06/02 职场文书
2016年重阳节慰问信
2015/12/01 职场文书