微信小程序-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 相关文章推荐
javascript 字符串连接的性能问题(多浏览器)
Nov 18 Javascript
JS批量操作CSS属性详细解析
Dec 16 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
简单实现js倒计时功能
Feb 13 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
webpack的tree shaking的实现方法
Sep 18 Javascript
vue2.x 对象劫持的原理实现
Apr 19 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
德生S2000电路分析
2021/03/02 无线电
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
Python中join和split用法实例
2015/04/14 Python
python 不以科学计数法输出的方法
2018/07/16 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
如何写好自荐信
2014/04/07 职场文书
音乐学专业求职信
2014/07/22 职场文书
社区志愿者活动方案
2014/08/18 职场文书
办公室管理规章制度
2015/08/04 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers