From 53fdd6d3584bfeb31abe8bdd185e25822b88f43b Mon Sep 17 00:00:00 2001 From: lanterngamescn Date: Sat, 27 Jun 2026 01:43:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=90=8E=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E7=B3=BB=E7=BB=9F=E6=89=8B=E5=8A=BF=E6=9D=A1?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E9=81=AE=E6=8C=A1/=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=20H5=20=E5=BA=95=E9=83=A8=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 横屏游戏外壳下底部导航条(手势指示条)会压在 H5 内容上并拦截点击。 在 onWindowStageCreate 调用 setWindowSystemBarEnable(['status']): 保留顶部状态栏、隐藏底部导航条,隐藏后避让区更新,H5 内容自动延伸到屏幕底部。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../main/ets/entryability/EntryAbility.ets | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index fddd5dc..2bfa6ed 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,6 +1,7 @@ import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; import { EventBus } from 'common'; import { WeChatApi } from 'feature_capabilities'; import { AppEvents } from '../routes/AppRoutes'; @@ -36,6 +37,10 @@ export default class EntryAbility extends UIAbility { // Main window is created, set main page for this ability hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + // 隐藏底部系统手势条(导航条):横屏游戏外壳下其会遮挡并拦截 H5 底部点击。 + // 保留顶部状态栏,避免给 H5 顶部内容引入新的避让遮挡。 + this.hideNavigationBar(windowStage); + windowStage.loadContent('pages/Index', (err) => { if (err.code) { hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); @@ -45,6 +50,22 @@ export default class EntryAbility extends UIAbility { }); } + /** + * 隐藏底部导航条(手势指示条),回收其占用空间给 H5 内容。 + * setWindowSystemBarEnable 的入参是"需要显示"的系统栏集合:仅传 'status' + * → 顶部状态栏保留、底部导航条隐藏。隐藏后避让区更新,内容自动延伸到屏幕底部。 + */ + private hideNavigationBar(windowStage: window.WindowStage): void { + try { + const mainWin: window.Window = windowStage.getMainWindowSync(); + mainWin.setWindowSystemBarEnable(['status']).catch((e: BusinessError) => { + hilog.error(DOMAIN, 'testTag', 'setWindowSystemBarEnable failed: %{public}s', JSON.stringify(e)); + }); + } catch (e) { + hilog.error(DOMAIN, 'testTag', 'hideNavigationBar threw: %{public}s', JSON.stringify(e)); + } + } + onWindowStageDestroy(): void { // Main window is destroyed, release UI related resources hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');