关于 wx.showModal 在安卓机上会弹出多次问题?

发布于 2022-09-30 23:08:46 字数 402 浏览 48 评论 0

情况是这样的,我在wx.request请求中,当后端返回的状态码是401的时候,会用wx.showModal弹出登陆失效的提示,问题是当小程序前端wx.request并行多个请求时,在安卓机会多次弹出,导致前端这边不好处理逻辑,请问有什么办法可以改进下?

以下是封装的wx.request代码

说明一下,为什么会有多个请求,用户一段时间没有使用小程序,重新进入首页的情况下,首页有多个ajax请求,这时候登陆状态已经失效了,从而进入401状态码的判断分支中

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不及他 2022-10-07 23:08:46

说明微信 Android 版写小程序运行时的人没限制同时弹出多个 Modal 呗。

但这个问题你也不能赖人家,是你没加标志位,你应该再弹出前先判断有没有标志位,有了就别弹了。

大概逻辑是这样:

if (wx.__HAS_NOTLOGIN_MODAL) {
    // 这玩意儿存到哪都行,总之是全局的就可以,你也可以放到 app 的 globalData 里
    return;
}

wx.__HAS_NOTLOGIN_MODAL = true;

wx.showModal({
    complete: () => {
        // 这个延迟的目的是为了避免短时间内重复弹出
        // 你要是没有这个需要也可以去掉,直接把标志位改成 false 就行
        setTimeout(() => {
            wx.__HAS_NOTLOGIN_MODAL = false;
        }, 2000);
    }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文