uni-app TopWindow窗体的页面不响应任何事件,因此无法设置监听代码,无法执行任何代码
uni-app TopWindow窗体的页面不响应任何事件,因此无法设置监听代码,无法执行任何代码
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | windows10 | HBuilderX |
操作步骤:
在topwindow,页面的onLoad、onShow事件中写代码就不会执行。
预期结果:
在页面刷新时,应该执行onLoad或者onShow之类的事件代码
实际结果:
topwindow,页面中的onLoad、onShow事件中写代码不会执行。
bug描述:
topwindow 页面设置onload、onready、onshow等生命周期监听事件都不起作用。本来希望在页面加载时,topwindow根据页面的url来动态调整ui显示,但是在任何生命周期函数写代码都不能够执行。
更多关于uni-app TopWindow窗体的页面不响应任何事件,因此无法设置监听代码,无法执行任何代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app TopWindow窗体的页面不响应任何事件,因此无法设置监听代码,无法执行任何代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
TopWindow 作为独立渲染的窗体,其生命周期与主页面不同步,确实存在生命周期函数不触发的情况。这属于 uni-app 框架的设计特性,而非 bug。
解决方案:
- 使用
uni.$on和uni.$emit进行跨窗体通信,在主页面加载后主动向 TopWindow 发送事件 - 在 TopWindow 的 template 中使用条件渲染,通过接收到的参数控制显示逻辑
- 通过
uni.postMessage实现页面与 TopWindow 的数据传递
示例代码:
// 主页面
onLoad() {
uni.$emit('topWindowInit', { url: this.url })
}
// TopWindow
created() {
uni.$on('topWindowInit', (data) => {
// 处理业务逻辑
})
}

