微信小程序-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 相关文章推荐
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
jQuery下的几个你可能没用过的功能
Aug 29 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
JavaScript中的方法重载实例
Mar 16 Javascript
禁止按回车键提交表单的方法
Jun 11 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
基于vue.js实现购物车
Jan 15 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
如何去掉文章里的 html 语法
2006/10/09 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
Django框架中方法的访问和查找
2015/07/15 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
.NET方向面试题
2014/11/20 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
优秀学生干部推荐材料
2014/02/03 职场文书
会计学生自我鉴定
2014/02/06 职场文书
球队口号
2014/06/18 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
装修安全责任协议书
2016/03/22 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js