微信小程序-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 相关文章推荐
caller和callee的区别介绍及演示结果
Mar 10 Javascript
node.js不得不说的12点内容
Jul 14 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
jQuery中:text选择器用法实例
Jan 03 Javascript
js实现二级导航功能
Mar 03 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
Javascript实现找不同色块的游戏
Jul 17 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
Vuejs实现购物车功能
Nov 05 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
小谈angular ng deploy的实现
Apr 07 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
javascript常用对话框小集
2013/09/13 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
Python文件读写保存操作的示例代码
2018/09/14 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
户外亲子活动总结
2015/05/08 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
使用Python获取字典键对应值的方法
2022/04/26 Python