微信小程序-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 相关文章推荐
5款JavaScript代码压缩工具推荐
Jul 07 Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 Javascript
JavaScript中Array对象用法实例总结
Nov 29 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
Vue路由前后端设计总结
Aug 06 Javascript
VUE解决 v-html不能触发点击事件的问题
Oct 28 Javascript
Vue.js暴露方法给WebView的使用操作
Sep 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
php中文繁体和简体相互转换的方法
2015/03/21 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
javascript下function声明一些小结
2007/12/28 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
详解vue 命名视图
2019/08/14 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
python pygame实现2048游戏
2018/11/20 Python
python字典一键多值实例代码分享
2019/06/14 Python
python实现批量文件重命名
2019/10/31 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
会计岗位职责
2013/11/08 职场文书
中学家长会邀请函
2014/02/03 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android