微信小程序-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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
JS代码优化技巧之通俗版(减少js体积)
Dec 23 Javascript
DOM 高级编程
May 06 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
Apr 18 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
loading动画特效小结
Jan 22 Javascript
vue界面发送表情的实现代码
Sep 11 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
Nov 07 Javascript
JavaScript圣杯布局与双飞翼布局实现案例详解
Aug 05 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替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
浅谈js的异步执行
2016/10/18 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
vue v-for直接循环数字实例
2019/11/07 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
Django实现分页功能
2018/07/02 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
委托书格式范文
2015/01/28 职场文书
统计员岗位职责范本
2015/04/14 职场文书
起诉意见书范文
2015/05/19 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers