HarmonyOS 实现自定义启动页

news/2024/9/18 1:44:12 标签: harmonyos, 华为, 鸿蒙, 前端, 鸿蒙系统, 华为云

请添加图片描述

👨🏻‍💻 热爱摄影的程序员
👨🏻‍🎨 喜欢编码的设计师
🧕🏻 擅长设计的剪辑师
🧑🏻‍🏫 一位高冷无情的全栈工程师
欢迎分享 / 收藏 / 赞 / 在看!

要在 HarmonyOS 中实现自定义启动页,需要在项目中 Ability 的 onWindowStageCreate 和 onWindowStageRestore 方法中获取应用主窗口, 并通过调用窗口强制全屏布局接口 setWindowLayoutFullScreen 将窗口设置为全屏。

/**
 * 将窗口设置为全屏
 * @param windowStage
 */
setFullSize(windowStage: window.WindowStage) {
    let windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口
    // 设置窗口全屏
    let isLayoutFullScreen = true;
    windowClass.setWindowLayoutFullScreen(isLayoutFullScreen)
        .then(() => {
            console.info('Succeeded in setting the window layout to full-screen mode.');
        })
        .catch((err: BusinessError) => {
            console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
        });
}

新建启动页 Splash.ets ,在该页面中的 aboutToAppear 生命周期钩子中使用 timer 定时器,实现延时跳转功能。最后在组件结构销毁之前的 aboutToDisappear 生命周期钩子中销毁 timer 定时器。

@State countdown: number = 5; // 倒计时,默认 5 秒
readonly DURATION: number = 1000; // 倒计时间隔
private timer: number = 0; // 定时器

aboutToAppear(): void {
  this.startTiming();
}

/**
 * 开始倒计时
 */
startTiming() {
  // 设置时间间隔
  this.timer = setInterval(() => {
    this.countdown--;
    if (this.countdown === 0) {
      this.clearTiming();
      this.jumpToMainPage();
    }
  }, this.DURATION);
}

/**
 * 清除定时器
 */
clearTiming() {
  if (this.timer !== null) {
    clearInterval(this.timer);
    this.timer = 0;
  }
}

/**
 * 跳转到主页
 */
jumpToMainPage() {
  this.clearTiming();
  router.replaceUrl({
    url: 'pages/Index'
  });
}

/**
 * 组件结构销毁之前时
 */
aboutToDisappear() {
  // 清除定时器
  this.clearTiming();
}

运行效果如下:

在这里插入图片描述


http://www.niftyadmin.cn/n/5656031.html

相关文章

桥接模式详解和分析JDBC中的应用

🎯 设计模式专栏,持续更新中, 欢迎订阅:JAVA实现设计模式 🛠️ 希望小伙伴们一键三连,有问题私信都会回复,或者在评论区直接发言 桥接模式 文章目录 桥接模式桥接模式的四个核心组成&#xff1a…

Python知识点:如何使用Python进行图像批处理

在Python中进行图像批处理可以使用多种库,如 Pillow、OpenCV 和 imageio。这些库可以用来执行各种图像处理任务,如调整大小、裁剪、旋转、滤镜应用等。以下是使用这些库进行图像批处理的示例。 使用 Pillow 进行图像批处理 Pillow 是一个功能强大的图像…

深入理解ElasticSearch集群:架构、高可用性与数据一致性

引言 ElasticSearch(ES)是一个基于Lucene的开源搜索引擎,它提供了分布式多租户能力的全文搜索引擎,具有HTTP web接口和无模式JSON文档的特点。ElasticSearch最常被用来作为企业级搜索引擎,也可以用于日志记录分析、数…

AI辅助写论文工具,从菜鸟变大神的秘诀!

在当今信息爆炸的时代,学术研究面临着前所未有的挑战与机遇。随着知识领域的不断拓展与深化,论文写作成为了每位研究者必须跨越的重要门槛。幸运的是,随着人工智能(AI)技术的崛起,AI辅助论文写作已成为一股…

centos下nvme over rdma 环境配置

nvme over rdma 环境配置 本文主要介绍NVMe over RDMA的安装和配置。关于什么是NVMe over Fabrics,什么是NVMe over RDMA,本文就不做介绍了,网上资料一大堆。 可以看看什么是NVMe over Fabrics? RDMA(全称:Remote Dir…

内存区域-面试与分析

1.运行时数据区是什么? 虚拟机在执行Java程序的过程将它所管理的内存划分为若干不同的数据区,这些区域有各自的用途、创建和销毁时间。 线程私有:程序计数器、Java虚拟机栈、本地方法栈 线程共享:Java堆,方法区 2.程…

中国将越南语集中在哪里?怎样更好的提高越南语口语能力?

中国与越南接壤,两国之间有着密切的文化交流。在中国,学习越南语的教育资源主要集中在一些大学的语言学院、专业的外语培训机构以及与越南有较多交流的边境地区,如广西壮族自治区和云南省。这些地区由于地理位置接近越南,因此越南…

【C++】list的使用与简单模拟实现

目录 1、list的介绍和使用: 1、结构: 2、接口函数: 迭代器遍历: 增删查改: 翻转与排序: 2、list的模拟实现: 1、节点的封装: 2、迭代器的封装: 3、list的模拟实…