收藏
回答

如何一次性关闭多个 wx.showModal窗口?

我用setInterval设置了一个每隔一秒出现一个showModel弹窗,结果是需要点很多下确定才能把弹窗点完,请问有没有什么办法能够一次性关闭所有弹窗呢?

回答关注问题邀请回答
收藏

5 个回答

  • Light
    Light
    2023-08-02

    官方没有这种方法,目前我是这样做的:在内存里放一个参数对应某个弹窗是否允许打开,每次弹窗前判断一下参数,弹窗后修改参数,用户点了弹窗就再设置允许弹出。具体代码如下:

    /**
     * 关闭其他页面跳转登录页面
     * @param {*} switchToLoginPageFlag 是否允许跳转提示弹窗的标识 ture为允许
     */
    function switchToLoginPage(){
      let switchToLoginPageFlag = wx.getStorageSync('switchToLoginPageFlag');
      if(switchToLoginPageFlag){
        wx.setStorageSync('switchToLoginPageFlag'false);
        wx.showModal({
          title'用户未登录',
          content'是否跳转到登录页面?',
          success (res) {
            if (res.confirm) {
              wx.setStorageSync('switchToLoginPageFlag'true);
              wx.switchTab({
                url'/pages/login/login',
              })
            } else if (res.cancel) {
              wx.setStorageSync('switchToLoginPageFlag'true);
            }
          }
        })
      }
      
    }
    


    app.js 里初始化这个参数。参数放内存是为了保证异步调用的时候参数值一致

      onLaunch: function () {
    
        wx.setStorageSync('switchToLoginPageFlag'true);
    
      },
    



    2023-08-02
    有用 2
    回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-05-15

    没有,你可以自定义弹框

    2023-05-15
    有用
    回复
  • PENG
    PENG
    2023-05-15

    windows 病毒弹窗?

    2023-05-15
    有用
    回复
  • showms
    showms
    2023-05-15

    挺有才。弹窗没关闭继续弹,这种体验好吗

    2023-05-15
    有用
    回复
  • 启年
    启年
    2023-05-15

    逻辑再完善一下,如果用户没处理这个showModel,下一个showModel就先别弹出来呀。


    如果非得挨个弹showModel,那你可以自己写一个showModel,一直动态的修改你自己写的showModel里展示的内容

    2023-05-15
    有用
    回复
登录 后发表内容