微信小程序-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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
Nov 09 Javascript
js怎么判断flash swf文件是否加载完毕
Aug 14 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
详解基于webpack和vue.js搭建开发环境
Apr 05 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
微信小程序 flex实现导航实例详解
Apr 26 Javascript
vue-router路由与页面间导航实例解析
Nov 07 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
Apr 04 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
php xml实例 留言本
2009/03/20 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
php上传大文件设置方法
2016/04/14 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php实现小程序支付完整版
2018/10/09 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python抓取京东图书评论数据
2014/08/31 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
中职应届生会计求职信
2013/10/23 职场文书
电子商务自荐书范文
2014/01/04 职场文书
外贸专业求职信
2014/03/09 职场文书
梅花魂教学反思
2014/04/25 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
opencv检测动态物体的实现
2021/07/21 Python
索尼ICF-5900W收音机测评
2022/04/24 无线电