很多微信小程序开发者,都会遇到这样的情况,在调用wx.login()的时候,在部分IOS上无响应的情况,那么这种情况要如何解决?

响应结果如下: 
分析结果,我们知道,login接口一直处于pending状态,如果加了timeout时间后,在complate回调中可触发; 
那为什么login方法一直是pending呢????

发现页面中其实用了新组件


这个组件是用来显示微信的“头像”和“昵称”的,本着“试一试,万一可以呢”的原则,果断删除了该组件,再次运行,好了,神奇了嗨!

在调用wx.login()方法前,我先使用open-data标签渲染了“头像”和“昵称”,但是为啥先使用组件后就GG了?可能是微信渲染自带线程的吧,我的使用方法,违背了微信的渲染机制,导致了线程阻塞(我猜的哈);

回头想想,也是哈,尚未登陆就渲染了头像和昵称,节奏不是这样的;就像警察查身份证,还没刷机器,就知道你叫啥了,住哪里,不科学了对吧。

所以,要显示头像和昵称的open-type组件,必须在调用wx.login()的API后,再行渲染;  知道了原因,解决起来就很简单了,定义一个变量isLogin,用来记录wx.login()是否已调用  let isLogin = false wx.login({ success: function(res) { if (res.code) { //发起网络请求 isLogin = true; } } });

然后将isLogin绑定在页面的data对象中,我就不写了哈,然后在页面中,用wx:if判断就可以了


Shopfa小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。更多小程序商店请查看:小程序商店

<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>

****更多行业产品开发方案,请关注jsudo加速度 https://www.jsudo.com***

【加速度jsudo(www.jsudo.com)】是国内知名企业数字化建设提供商,为企业提供电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售等)、智慧园区建设、数字化营销、人才外包等服务,点击这里查看了解更多行业解决方案。