当前位置:首页 > 日记 > 正文

微信小程序-getUserInfo回调的实例详解

微信小程序-getUserInfo回调的实例详解

微信小程序-getUserInfo回调的实例详解

前言:

这里就不吹嘘微信小程序有多厉害了,毕竟也不是我写的,直接谈谈我在做小程序开发时遇到的奇异Bug。

getUserInfo多次调用:

对于wx.getUserInfo应该很多开发者都用过,用于获取用户基本信息,前提是需要用户授权,如果用户先前没有授权,则弹出一个提示框如下:

点击允许后,我们就能拿到用户信息,再进行后面的一系列操作。这一切看起来都是那么美好,可是在某次运行中,点允许授权后,程序并没有按照我们的预期往下执行。最后发现在其他的地方也调用一次了wx.getUserInfo方法,并且只执行了其中一个授权成功的回调。假设是如下代码:

结论:

1. 如果用户已授权: A B C都会被打印。

2. 用户未授权:点击允许后,A B C三个其一会被随机打印。

当然最好不要在多处同时调用wx.getUserInfo方法,不然遇到这个问题会很头疼。我对这个问题的看法是,多次调用getUserInfo方法只会产生一个弹窗的实例,所以点击允许时,只执行一次回调也很正常,但是随机执行其中一个方法就很奇怪了。

解决方法:

1. 不同时调用wx.getUserInfo方法,需要同时调用的情况少之又少。

2. 封装一个getUserInfo方法,把传入的回调方法存入数组,在授权成功/失败的回调中遍历调用后清空数组。

以下是测试环境:

微信开发者工具版本:v1.01.170925

基础库版本: 1.3.0

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

不等于符号怎么打

不等于符号怎么打

不等于,符号,电脑软件,不等于符号又称不等于号,它表示两个数或量不相等关系的符号。不等号是在等号“=”上面加上一条斜杠“≠”。现在常用关系类符号有,等号“=”、不等于号“≠”、大于号&ldq…

使用bootstrap-paginator.js 分页

使用bootstrap-paginator.js 分页

分页,请求,异步,示例,电脑软件,使用bootstrap-paginator.js 分页来进行ajax 异步分页请求具体的做法如下 :首先定义一个异步提交请求的ajax 函数,其完整的函数如下:var nid= $("#lbnid").val(); // 获取当前新闻编号 var cpage = 1; // 当前…

如何防止Excel单元格区域内重复录

如何防止Excel单元格区域内重复录

数据,区域内,单元格,如何防止,电脑软件,今天给大家发布一个有关防止重复录入数据的数据有效性技巧。场景:适合公司人事、行政、财务、销售等进行Excel表格模板定制的办公人士。问题:如何防止Excel单元格区域内重复录入数据?解答:利用Excel的数…

PHP自定义函数实现数组比较功能示

PHP自定义函数实现数组比较功能示

自定义函数,数组,示例,功能,电脑软件,本文实例讲述了PHP自定义函数实现数组比较功能。分享给大家供大家参考,具体如下:<?php //数组使用标准比较运算符这样比较的 function standard_array_compare($op1,$op2) { if(count($op1) < count($op2…

word如何设置表格数字水平居中word

word如何设置表格数字水平居中word

数字,设置,步骤,表格,如何设置,  word表格中的文字或者是数字有时总是靠下有时总是靠上,那么怎样把它水平居中呢,那么下面就由小编给大家分享下word设置表格数字水平居中的技巧,希望能帮助到您。word设置表格数字水平居中的步骤步骤一:首先打…

VS2013无法启动 IIS Express Web解

VS2013无法启动 IIS Express Web解

无法启动,解决办法,电脑软件,IIS,Web,不要勾选【覆盖应用程序根URL(U)】,或让【覆盖应用程序根URL(U)】下面的输入框和上面的输入框的地址一样!使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器。前几日,创建了一个MVC项目,突然发…

ps如何实现换脸照片效果

ps如何实现换脸照片效果

照片,方法,换脸,效果,如何实现,  很多恶搞的图片都是换脸的,使用ps可以轻松实现。但是很多同学还不太清楚。那么接下来下面是小编整理的一些关于ps如何实现换脸照片效果,供您参阅。ps实现换脸照片效果的方法第一步:打开素材2用自由套索工具…

ps滤镜云彩怎么用? ps絮云滤镜的教

ps滤镜云彩怎么用? ps絮云滤镜的教

滤镜,教程,云彩,电脑软件,ps,ps中想要使用滤镜处理图片,今天我们就来看看絮云滤镜的使用方法。软件名称:Adobe photoshop 7.01 官方正式简体中文版软件大小:154MB更新时间:2013-04-191、打开一个PS的软件,然后打开一张需要使用滤镜的图片,比如一…

如何在数据中心服务器上搭载虚拟机

如何在数据中心服务器上搭载虚拟机

数据中心,虚拟机,服务,器上,如何在,  为了尽可能地优化虚拟机的部署,你必须仔细对工作负载进行考分析,确认它们究竟需要哪些进程和资源,以及在什么时候需要。例如,如果你要在网络上运行Windows服务,就应该是这样的:域控制器在高峰时期往往需要…

Visual Stduio 2010开发环境搭建教

Visual Stduio 2010开发环境搭建教

教程,开发环境搭建,电脑软件,Visual,Stduio,Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。…

局域网中架设Win 2003终端服务器

局域网中架设Win 2003终端服务器

服务器,终端,网中,电脑软件,Win,  Windows Server 2003终端服务器可用来管理每个客户远程登录的资源,它提供了一个基于远程桌面协议(RDP)的服务,使Windows Server 2003成为真正的多会话环境操作系统,并让用户能使用服务器上的各种合法资源。一…

vue-cli如何添加less 以及sass

vue-cli如何添加less 以及sass

电脑软件,vue,cli,sass,vue-cli中已经内置配置好了sass 以及lass的配置。如果需要的话直接下载两个模块就可以了npm install node-sass --save-devnpm install sass-loader --save-dev如果是淘宝镜像直接运行cnpm是一样的效果然后在组件或…