微信小程序-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 相关文章推荐
jquery异步循环获取功能实现代码
Sep 19 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
$.extend 的一个小问题
Jun 18 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
小程序实现列表倒计时功能
Jan 29 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 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
Js 中debug方式
2010/02/07 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
pandas中ix的使用详细讲解
2020/03/09 Python
django实现后台显示媒体文件
2020/04/07 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
六一儿童节新闻稿
2015/07/17 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript
MySQL批量更新不同表中的数据
2022/05/11 MySQL
cypress测试本地web应用
2022/06/01 Javascript