微信公众号一键唤起标签问题记录

133 阅读1分钟

代码大致如下

    <div v-if="wxOpenLaunchOptions.username">
      <a href="JavaScript:;">
        <wx-open-launch-weapp
          @launch="handleLaunch"
          @error="handleError"
          @ready="handleReady"
        >
          <script type="text/wxtag-template">
          {{ getStyleTxt() }}
          </script>
        </wx-open-launch-weapp>
      </a>
      
    <script>
    getStyleTxt() {
      return `
      <style>
      .btn-container {
        height: 44px;
        width: ${this.btnRealWidth};
      }
      </style>
      <div class="btn-container"></div>
      `
    }
    </script>
      

1. 问题1 开放标签执行了ready回调,但是在页面上点击无效

审查元素发现一键唤起标签内嵌了一个iframe, iframe的宽高为0
问题产生原因:给微信开放标签外部容器设置v-if或者v-show,会导致开放标签初始化时计算宽高为0
解决办法:由于容器隐藏逻辑不可删除,因此使用opacity:0来控制显示隐藏。

2. 大概率偶现wxconfig成功,开放标签ready和error方法均没有执行

怀疑是因为页面的前向页面也请求了微信签名导致,原因未知,未解决

3. 小概率偶现wxconfig成功,开放标签ready事件执行,点击开放标签没反应

控制台报错 Pasted Graphic 1.png 怀疑是因为页面的前向页面也请求了微信签名导致,原因未知,未解决