⼩程序-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
如有疑问请留⾔或者到本站社区交流讨论,感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论