微信小程序-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高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
javascript中如何处理引号编码"
Aug 15 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
jQuery实现360°全景拖动展示
Mar 18 Javascript
javascript创建动态表单的方法
Jul 25 Javascript
jQuery实现简单的文件上传进度条效果
Mar 26 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
May 05 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 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
php相当简单的分页类
2008/10/02 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
js实现简单模态框实例
2018/11/16 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
vue实现登录功能
2020/12/31 Vue.js
基于python读取.mat文件并取出信息
2019/12/16 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
物业保安员岗位职责制度
2014/01/30 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书