手机版

微信小程序-getUserInfo回拨

时间:2021-12-12 来源:互联网 编辑:宝哥软件园 浏览:

这里微信小程序有多强大我就不吹嘘了。毕竟不是我写的。先说说我在开发小程序时遇到的奇怪bug。

GetUserInfo被多次调用:

微信小程序-getUserInfo回调(图1)

Wx.getUserInfo应该被很多开发者用来获取用户的基本信息,前提是需要用户的授权。如果用户之前没有授权,会弹出如下提示框:

点击权限后,我们可以获取用户信息,然后进行后续的一系列操作。这一切看似如此美好,但在某次操作中,授权被授予后,程序并没有像我们预期的那样进行下去。最后发现在其他地方只调用了一次wx.getUserInfo方法,只执行了一次授权成功的回调。假设它是以下代码:

微信小程序-getUserInfo回调(图2)

结论:

如果用户已经授权:将打印一个B B C。

用户未授权:点击允许后,会随机打印A、B、C三种中的一种。

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

解决方案:

不同时调用wx.getUserInfo方法,很少同时调用。

封装一个getUserInfo方法,将传入的回调方法存储到一个数组中,并在成功/失败的授权回调中遍历调用后清除该数组。

以下是测试环境:

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

基本库版本: 1.3.0

如有问题或不恰当,请纠正。

版权声明:微信小程序-getUserInfo回拨是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。