From 3dafca166360fc5c39c14c2c138477c745a6adaf Mon Sep 17 00:00:00 2001 From: beezen <1184031131@qq.com> Date: Wed, 31 Jan 2024 18:19:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(h5):=20=E4=BF=AE=E6=94=B9=20onShow?= =?UTF-8?q?=E3=80=81onHide=20=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E9=80=BB=E8=BE=91=20(#15183)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Zakary --- packages/taro-router/src/router/mpa.ts | 8 ++++++++ packages/taro-router/src/router/spa.ts | 8 ++++++++ packages/taro-router/src/tabbar.ts | 2 +- packages/taro-runtime/src/dsl/instance.ts | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/taro-router/src/router/mpa.ts b/packages/taro-router/src/router/mpa.ts index a9e23b98265c..52960e94b8bf 100644 --- a/packages/taro-router/src/router/mpa.ts +++ b/packages/taro-router/src/router/mpa.ts @@ -88,4 +88,12 @@ export async function createMultiRouter ( handler.load(page, pageConfig) app.onShow?.(launchParam as Record) + + window.addEventListener('visibilitychange', ()=>{ + if (document.visibilityState === 'visible') { + app.onShow?.(launchParam as Record) + }else{ + app.onHide?.(launchParam as Record) + } + }) } diff --git a/packages/taro-router/src/router/spa.ts b/packages/taro-router/src/router/spa.ts index 022e1b0aa156..4a71ab678b2a 100644 --- a/packages/taro-router/src/router/spa.ts +++ b/packages/taro-router/src/router/spa.ts @@ -210,5 +210,13 @@ export function createRouter ( app.onShow?.(launchParam as Record) + window.addEventListener('visibilitychange', ()=>{ + if (document.visibilityState === 'visible') { + app.onShow?.(launchParam as Record) + }else{ + app.onHide?.(launchParam as Record) + } + }) + return history.listen(render) } diff --git a/packages/taro-router/src/tabbar.ts b/packages/taro-router/src/tabbar.ts index 4f822446f3de..8d0f493c2582 100644 --- a/packages/taro-router/src/tabbar.ts +++ b/packages/taro-router/src/tabbar.ts @@ -10,7 +10,7 @@ export function initTabbar (config: AppConfig, history: History) { // TODO: custom-tab-bar defineCustomElementTaroTabbar() - const tabbar: any = document.createElement('taro-tabbar') as HTMLDivElement + const tabbar: any = document.createElement('taro-tabbar') as HTMLElement const homePage = config.entryPagePath || (config.pages ? config.pages[0] : '') tabbar.conf = config.tabBar tabbar.conf.homePage = history.location.pathname === '/' ? homePage : history.location.pathname diff --git a/packages/taro-runtime/src/dsl/instance.ts b/packages/taro-runtime/src/dsl/instance.ts index 8b39185f0eda..b3987a8f7119 100644 --- a/packages/taro-runtime/src/dsl/instance.ts +++ b/packages/taro-runtime/src/dsl/instance.ts @@ -89,6 +89,7 @@ export interface AppInstance extends Show { onPageNotFound? (res: any): void onUnhandledRejection? (error: any): void onShow?(options?: Record): void + onHide?(options?: Record): void unmount? (id: string, cb?: () => void): void taroGlobalData?: Record config?: Record