代码大致如下
<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事件执行,点击开放标签没反应
控制台报错
怀疑是因为页面的前向页面也请求了微信签名导致,原因未知,未解决