收藏
回答

多次打开同一页面,wx.showModal会重复出现多次?

安卓手机,扫小程序码进入页面A,页面会调wx.showModal出现弹窗;退出小程序,再次扫小程序码进入页面A,这时会出现2个弹窗;以此类推,扫多少次码,就出现多少次弹窗。如何在页面初始化时关闭原本展示的模式弹窗,保证页面只展示一个弹窗?

最后一次编辑于  2023-11-30
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-11-30

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2023-11-30
    有用
    回复 7
    • V
      V
      2023-11-30
      https://developers.weixin.qq.com/s/2ENPN6mt7QNY,生成页面二维码,直接微信扫二维码访问页面
      2023-11-30
      回复
    • 社区技术运营专员-Jahozheng
      社区技术运营专员-Jahozheng
      2023-11-30回复V
      测试代码片段没复现
      2023-11-30
      回复
    • V
      V
      2023-11-30回复社区技术运营专员-Jahozheng
      要用安卓手机,多次扫码打开
      2023-11-30
      回复
    • 社区技术运营专员-Jahozheng
      社区技术运营专员-Jahozheng
      2023-12-01回复V
      目前看是符合预期的,同一个码扫起来是热启动的 ios应该是清了弹窗 除了调试有影响到使用么
      2023-12-01
      回复
    • V
      V
      2023-12-04回复社区技术运营专员-Jahozheng
      出现多个相同弹窗会对用户造成困扰,且我们业务场景里小程序码带某些参数时不应该出现那个弹窗。这种情况安卓有办法规避吗,比如提供方法在页面打开时清除之前的弹窗?
      2023-12-04
      回复
    查看更多(2)
  • 微盟
    微盟
    2023-11-30

    是的,如果多次打开同一页面并且在每次打开页面时都调用了wx.showModal方法,那么wx.showModal会重复出现多次。这是因为wx.showModal是一个异步方法,每次调用都会创建一个新的模态框实例。


    为了避免重复出现多个模态框,你可以在每次打开页面时先关闭之前的模态框。可以通过以下步骤来实现:


    在页面的onUnload生命周期函数中调用wx.hideModal方法,关闭之前打开的模态框。这样在每次离开页面时,都会关闭之前的模态框。


    在每次打开页面时,再调用wx.showModal方法显示新的模态框。


    下面是一个示例代码:



            

    javascript

    插入代码

    复制代码

    Page({

      onUnload: function() {

        wx.hideModal(); // 关闭之前的模态框

      },

      openModal: function() {

        wx.showModal({

          title: '提示',

          content: '这是一个模态框',

          success: function(res) {

            if (res.confirm) {

              console.log('用户点击确定');

            } else if (res.cancel) {

              console.log('用户点击取消');

            }

          }

        });

      }

    });

    2023-11-30
    有用
    回复 1
    • V
      V
      2023-11-30
      TypeError: wx.hideModal is not a function。wx.hideModal这个方法是不存在的,官方文档也没有写。
      2023-11-30
      1
      回复
登录 后发表内容