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');