7***@qq.com
7***@qq.com
  • 发布:2021-06-28 16:59
  • 更新:2021-06-29 12:00
  • 阅读:413

【报Bug】预加载界面监听show事件,安卓正常,IOS只执行一次,切换tab无法继续监听

分类:uni-app

产品分类: 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,无法监听

2021-06-28 16:59 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

只有根组件才有onShow的监听事件,要是你在页面套了组件,子组件是不会触发onShow的。可以在给子组件加上v-if,通过父组件的ohShow和onHide来控制子组件,子组件内部使用created或者mounted来处理onshow的操作

<template>
<view>
<view>我是根组件</view>
<ChildComponent></ChildComponent>
</view>
</template>
<script>
import ChildComponent from '.......'
export default {
components: {
ChildComponent
},
onSHow() {
console.log('show')
}
}
</script>

这种时候,本组件会触发onShow,ChildComponent组件内部的onShow就不会触发。

  • 7***@qq.com (作者)

    不好意思,不是很明白,如果是根组件和子组件的问题,为什么安卓没问题,IOS的不行呢?

    2021-07-03 08:29

该问题目前已经被锁定, 无法添加新回复