uni-app 预加载界面监听show事件,安卓正常,IOS只执行一次,切换tab无法继续监听
uni-app 预加载界面监听show事件,安卓正常,IOS只执行一次,切换tab无法继续监听
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.4 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:11.4
HBuilderX类型:正式
HBuilderX版本号:3.1.18
手机系统:iOS
手机系统版本号:IOS 14
手机厂商:苹果
手机机型:iphone8
页面类型:vue
打包方式:云端
项目创建方式:HBuilderX
### 示例代码:
代码问题描述详见:https://ask.dcloud.net.cn/question/125571
### 操作步骤:
mui.plusReady(function() { var self = plus.webview.currentWebview(); self.addEventListener(‘show’,function() { console.log(‘show’); }); })
### 预期结果:
每次切换到有监听界面时,都该执行log输出。
### 实际结果:
安卓正常,IOS只能调试基座打开第一次切换可以监听到show事件,在点击切换tab无法监听
### bug描述:
预加载界面,通过plus.webview.show、hide来切换tab,在界面监听show事件,实现切换界面时候刷新;
安卓测试正常,切换时每次都能监听到show事件。
IOS测试过程中,启动调试基座第一次点击tab可以监听到show事件,后续切换tab,无法监听
更多关于uni-app 预加载界面监听show事件,安卓正常,IOS只执行一次,切换tab无法继续监听的实战教程也可以访问 https://www.itying.com/category-93-b0.html
只有根组件才有onShow的监听事件,要是你在页面套了组件,子组件是不会触发onShow的。可以在给子组件加上v-if,通过父组件的ohShow和onHide来控制子组件,子组件内部使用created或者mounted来处理onshow的操作
<template>
<view>
<view>我是根组件</view>
<ChildComponent></ChildComponent>
</view>
</template>
这种时候,本组件会触发onShow,ChildComponent组件内部的onShow就不会触发。
更多关于uni-app 预加载界面监听show事件,安卓正常,IOS只执行一次,切换tab无法继续监听的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不好意思,不是很明白,如果是根组件和子组件的问题,为什么安卓没问题,IOS的不行呢?
在uni-app中,iOS平台对show事件的监听机制与Android存在差异。iOS的plus.webview在预加载页面时,show事件可能仅触发一次,这是由于iOS的Webview生命周期管理策略导致的。
针对此问题,建议改用页面生命周期钩子onShow替代plus的事件监听。在Vue页面的<script>部分直接使用:
export default {
onShow() {
console.log('页面显示');
// 执行刷新逻辑
}
}

