微信小程序-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代码
Jul 20 Javascript
javascript instanceof 内部机制探析
Oct 15 Javascript
js this函数调用无需再次抓获id,name或标签名
Mar 03 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
Mar 06 Javascript
Express的路由详解
Dec 10 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
微信小程序删除处理详解
Aug 16 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
Jul 25 Javascript
vue实现图片按比例缩放问题操作
Aug 11 Javascript
详解vue修改elementUI的分页组件视图没更新问题
Nov 13 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根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
Python中encode()方法的使用简介
2015/05/18 Python
Python创建xml文件示例
2017/03/22 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python pickle模块实现对象序列化
2019/11/22 Python
基于python实现文件加密功能
2020/01/06 Python
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
怎样声明接口
2014/09/19 面试题
linux面试题参考答案(6)
2014/08/29 面试题
军训生自我鉴定范文
2013/12/27 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
三严三实心得体会范文
2014/10/13 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫