HarmonyOS 鸿蒙Next关于集成SDK中遇到的沉浸式问题

HarmonyOS 鸿蒙Next关于集成SDK中遇到的沉浸式问题 在集成某运营商SDK过程中,发现用户登录后跳转到我的应用后,沉浸式效果消失,但是我在页面加载生命周期内调用

try {
  const thisWindow = await window.getLastWindow(getContext())
  let properties = thisWindow.getWindowProperties();
  console.log(JSON.stringify(properties.isLayoutFullScreen))
} catch (exception) {
  console.error(`Failed to set the window layout to full-screen mode. Cause code: ${exception.code}, message: ${exception.message}`);
}

打印log发现沉浸式布局是true,说明我的沉浸式还是开着的,但是导航栏部分全部变白了。后来发现,SDK内默认更改了window.SystemBarProperties格式,全部设置成了白色,所以我的沉浸式看起来就像消失了。

后面自己又设置了一边沉浸式导航栏对应颜色,解决了问题。

let systemBarProperties: window.SystemBarProperties = {
  statusBarColor: 'FFFFFFFF',
  navigationBarColor: '#00ff00',
  // 以下两个属性从API Version 8开始支持
  statusBarContentColor: '#000000',
  navigationBarContentColor: '#ffffff'
};

如果你遇到沉浸式导航栏消失不妨试一下


更多关于HarmonyOS 鸿蒙Next关于集成SDK中遇到的沉浸式问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

感谢楼主分享。

更多关于HarmonyOS 鸿蒙Next关于集成SDK中遇到的沉浸式问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,集成SDK时遇到的沉浸式问题主要涉及系统状态栏、导航栏的隐藏与显示。鸿蒙Next提供了Window类中的setSystemBarMode方法,用于控制沉浸式模式。通过设置SystemBarModeSYSTEM_BAR_MODE_HIDE,可以隐藏状态栏和导航栏。若需恢复显示,可将SystemBarMode设置为SYSTEM_BAR_MODE_VISIBLE。此外,Window类还提供了setSystemBarProperties方法,用于自定义状态栏和导航栏的颜色、透明度等属性。在沉浸式模式下,应用界面会占据整个屏幕,用户需要通过手势操作来呼出系统栏。开发者需确保应用界面在沉浸式模式下的布局适配,避免内容被遮挡。

回到顶部