首页 > 其他分享 >【HarmonyOS】API9沉浸式状态栏

【HarmonyOS】API9沉浸式状态栏

时间:2023-08-16 17:36:31浏览次数:70  
标签:沉浸 stringify console 状态栏 err API9 HarmonyOS windowClass

对于沉浸式状态栏,在之前API8 FA模型开发中可以通过在config.json配置主题的方式实现应用的沉浸式体验,在最新的API9 Stage模型中系统提供了沉浸式窗口的示例(管理应用窗口(Stage模型)-窗口管理-开发-HarmonyOS应用开发)。通过调用setWindowSystemBarEnable接口,设置导航栏、状态栏不显示,从而达到沉浸式效果。

但是这种方式仅仅式隐藏了状态栏和导航栏,程序运行后状态栏和导航栏会显示为黑色,无法实现状态栏与App颜色一致,如下图:

【HarmonyOS】API9沉浸式状态栏_沉浸式

 如果要显示完全的沉浸式效果,可以将当前应用窗口设置为全屏样式实现。关键代码是:

windowClass.setWindowLayoutFullScreen(true)

【HarmonyOS】API9沉浸式状态栏_沉浸式_02

通过设置为全屏就可以实现状态栏和导航栏全覆盖的效果:

【HarmonyOS】API9沉浸式状态栏_状态栏_03

最后onWindowStageCreate关键代码如下,以供大家参考:

onWindowStageCreate(windowStage) {

  // 1.获取应用主窗口。
  let windowClass = null;
  windowStage.getMainWindow((err, data) => {

    if (err.code) {
      console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));
      return;
    }

    windowClass = data;
    console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data));


    // 2.实现沉浸式效果:设置导航栏、状态栏不显示。
    let names = [];
    windowClass.setWindowSystemBarEnable(names, (err) => {
      if (err.code) {
        console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
        return;
      }
      console.info('Succeeded in setting the system bar to be visible.');
    });

    windowClass.setWindowLayoutFullScreen(true)
  })


  // 3.为沉浸式窗口加载对应的目标页面。
  windowStage.loadContent("pages/Index", (err) => {
    if (err.code) {
      console.error('Failed to load the content. Cause:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in loading the content.');
  });
}

【HarmonyOS】API9沉浸式状态栏_沉浸式_04

标签:沉浸,stringify,console,状态栏,err,API9,HarmonyOS,windowClass
From: https://blog.51cto.com/u_15687416/7111350

相关文章

  • HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验
    华为开发者大会2023(HDC.Together)于8月4日至6日在东莞松山湖举行,在HarmonyOS端云开放能力技术分论坛上,华为为广大开发者们介绍了HarmonyOSSDK开放能力在基础开发架构、功能特性等方面的变化之处,通过将常见的通用能力全局化,关键技术底层化,为开发者提供更加低成本、高效的开发体验,赋......
  • HarmonyOS/OpenHarmony应用开发-ArkTSAPI系统能力SystemCapability列表
    SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性。开发者使用某个接口进行开发前,建议先阅读系统能力使用说明,了解Syscap的定义和使用指导。说明当前列表枚举出3.1Beta版本中支持的系统能力。开发者可以在SDK中通过phone.json文件查询。SystemCapability.Ar......
  • 【HarmonyOS】@ohos.request 上传下载的那些事儿
    【关键字】@ohos.request、上传下载【写在前面】在进行HarmonyOS应用开发时,可能需要进行上传或下载文件功能开发,本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。【上传开发步骤】步骤1:上传下载接口需要申请ohos.permission.INTERNET权限,如下:"reqPermissions":[{......
  • 【HarmonyOS】@ohos.request 上传下载的那些事儿
    【关键字】@ohos.request、上传下载【写在前面】在进行HarmonyOS应用开发时,可能需要进行上传或下载文件功能开发,本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。【上传开发步骤】步骤1:上传下载接口需要申请ohos.permission.INTERNET权限,如下:"reqPermissions":[{......
  • 【HarmonyOS】Java如何引用外部jar包
    【关键字】Java、引用jar包【写在前面】使用API6和API7开发HarmonyOS应用时,因为应用中只能引用SDK中开放的功能接口,但是部分jdk自带的接口功能在SDK中并未封装,要想在工程中使用jdk开放的接口功能,需要将jdk中的jar包通过本地引用方式引入再使用,本篇文章介绍如何在支持Java的HarmonyO......
  • HarmonyOS系统级推送服务,打造消息通知新体验
    8月4日,第五届华为开发者大会2023(HDC.Together)再次启航。在本次大会上,华为为广大用户带来了HarmonyOS4.0全新升级的体验,同时,针对HarmonyOS应用的开发,此次也全面升级了HarmonyOSSDK开放能力。账号服务、支付、广告、推送服务(PushKit)等通用能力全局化、系统化后,为开发者带来更......
  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)
    【关键字】视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通......
  • 十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量
     8月6日,HDC.Together2023 HarmonyOS学生公开课在东莞松山湖举办。有来自清华大学、北京大学、哈尔滨工业大学等全国百余所高校,千余名学生开发者齐聚会场,与华为高级技术专家、生态伙伴资深专家一起畅谈HarmonyOS未来,共话HarmonyOS在生活中的N种可能。此外,本次活动首次走进华......
  • 多方聚力共育人才,华为携手产学研赋能HarmonyOS开发者
    8月4日-6日,华为开发者大会2023(HDC.Together)在华为东莞松山湖隆重举办,本次大会不仅邀请广大开发者共襄技术盛举,也展现了华为在自身坚持创新攻坚的基础上,持续规划HarmonyOS开发课程,优化开发者联盟学堂体验,并通过深化政企合作、产学合作,共同为HarmonyOS开发者赋能,助力开发者成长。打......
  • 鸿蒙生态星河璀璨 | 老程序员让HarmonyOS创新从“心”开始
    “技术上有过一段时间,自己的自信心变成了自负,尤其是在30岁出头那段时间,遇到了很大的瓶颈期。” 苏煦烽回忆十多年前的自己,由于每天做着重复的事情,都在写代码,也很难找到特别牛的高手来交流,曾有过短暂的停滞不前。从2006年到现在,老苏在程序员之路上已经摸爬滚打了十七年,如今他已是......