HarmonyOS 实现自定义启动页

embedded/2024/9/20 3:44:51/ 标签: 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.ppmy.cn/embedded/114025.html

相关文章

Mycat搭建分库分表

分库分表解决的问题 单表数据量过大带来的性能和存储容量的限制的问题: 索引效率下降读写瓶颈存储容量限制事务性能问题分库分表架构 再搭建一对主从复制节点,3307主节点,3309从节点配置数据源 dw1 , dr1,创建集群c1创建逻辑库 CREATE DATAB…

KL散度(Kullback-Leibler)

文章目录 1. KL 散度的符号表示2. "||"符号的含义3. KL 散度的定义4. 为什么使用"||"符号5. 直观理解6. 应用中的理解7. 举例说明8. 补充说明 🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于…

k8s dashboard token 生成/获取

创建示例用户 在本指南中,我们将了解如何使用 Kubernetes 的服务帐户机制创建新用户、授予该用户管理员权限并使用与该用户绑定的承载令牌登录仪表板。 对于以下每个和的代码片段ServiceAccount,ClusterRoleBinding您都应该将它们复制到新的清单文件(如)…

go语言的基本语法

学了go语言但是一直没整理。。。那怎么证明我学了?如果学了之后忘了怎么复习?遂诞生这几篇,当作Linux中间的小插曲 整理一下go语言的基本语法: package mainimport ("bufio""fmt""os" ) 在使用对…

Vue2源码解读

vue源码_哔哩哔哩_bilibili 1.Vue源码路径目录解读 Vue2源码的路径目录被设计得非常清晰,每个文件夹都承担着特定的职责和功能。以下是这些主要文件夹(compiler、core、platform、server、sfc、shared)的详细解读: 1. compiler …

Redis面试---缓存问题

一、Redis和MySQL数据一致性解决方案 (一)借助lua脚本 Redis命令是单线程,不会存在数据并发安全问题,如果要保证多条命令并发执行的原子性,可以将多个Redis命令存放在lua脚本中,然后再统一执行。 在数据一致性问题方面,将Redis伪装成MySQL的slave,按照MySQL的主从交互…

二十种编程语言庆祝中秋节

二十种编程语言庆祝中秋节 文章目录 二十种编程语言庆祝中秋节中秋快乐!家人们 🥳一 Python二 C三 C四 Java五 C#六 Perl七 Go八 Asp九 PHP十 JavaScript十一 JavaScript HTML十二 Visual Basic十三 早期 VB十四 Visual C十五 Delphi十六 Shell十七 Cobo…

Vue.js与Flask/Django后端配合详细讲解

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

36.贪心算法3

1.坏了的计算器(medium) . - 力扣(LeetCode) 题目解析 算法原理 代码 class Solution {public int brokenCalc(int startValue, int target) {// 正难则反 贪⼼int ret 0;while (target > startValue) {if (target % 2 0…

EP19 各个页面之间的跳转

文件路径&#xff1a; E:/homework/uniappv3tswallpaper/pages/index/index.vue 添加了几个 navigator 。 <template><view class"homeLayout pageBg"><custom-nav-bar title"推荐"></custom-nav-bar><view class"banne…

windows使用tcpdump.exe工具进行抓包教程

windows主机安装一些抓包工具可能有些不方便&#xff0c;这里有一个tcpdump.exe工具直接免安装&#xff0c;可以直接使用进行抓包。&#xff08;工具下载见 附件&#xff09; tcpdump.exe使用教程 如下&#xff1a; 1&#xff1a;tcpdump -D 可查看网络适配器(注意前面的编号)…

OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 进行点在轮廓内的测试。 该函数确定点是在轮廓内、轮廓外&#xff0c;还是位于一条边上&#xff08;或与顶点重合&#xff09;。它返回正值&…

C++ 条件变量:wait、wait_for、wait_until

前言 在C中&#xff0c;条件变量&#xff08;std::condition_variable&#xff09;是用来在多个线程之间同步执行流的一种机制。它们通常与互斥锁&#xff08;如std::mutex&#xff09;一起使用&#xff0c;以在特定条件满足时唤醒一个或多个线程。条件变量有三种使线程阻塞并…

机器人自主导航从零开始第四步———Rviz、Gazebo、Meshlab的安装

本文参考资料&#xff1a; rviz - ROS 维基 Gazebo : Tutorial : Ubuntu (gazebosim.org) 零. 什么是Rviz和Gazebo&#xff1a; Rviz是一个三维可视化工具&#xff0c;它利用已有的数据将数据可视化&#xff0c;并提供了可以显示图像、模型、表格、路径等信息的插件&#x…

JDeps 使用指南

JDeps 使用指南 jdeps 是一个 Java 类依赖分析工具&#xff0c;允许开发者深入分析 Java 应用程序的依赖情况&#xff0c;包括类、包、模块和 JDK 内部 API 的使用。下面详细介绍 jdeps 的常用命令和输出解释。 1. 基本依赖分析 jdeps path/to/yourapp.jar这个命令会分析指定…

34.贪心算法1

0.贪心算法 1.柠檬水找零&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0;for (int x : bills) {if (x 5) // 5 元&#xff1a;直接收下…

基于vue框架的宠物店管理系统的设计与实现4czn0(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,商品分类,服务类型,商品信息,商品订单,宠物服务,服务预约,服务评价,商品咨询 开题报告内容 基于Vue框架的宠物店管理系统的设计与实现开题报告 一、引言 随着宠物行业的蓬勃发展&#xff0c;宠物店作为宠物产品与服务的重要提供…

【代码】使用c#实现串口通信的基础模板

一、分享代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;using System.IO.Ports; using…

在 Red Hat 上安装 SQL Server 2022 并创建数据库

适用于&#xff1a; SQL Server - Linux 本快速入门介绍如何在 Red Hat Enterprise Linux (RHEL) 8.x 或 9.x 上安装 SQL Server 2022 (16.x)。然后可以使用 sqlcmd 进行连接&#xff0c;创建第一个数据库并运行查询。 注意&#xff1a;本教程需要用户输入和 Internet 连接。 …

高级java每日一道面试题-2024年9月16日-框架篇-Spring MVC和Struts的区别是什么?

如果有遗漏,评论区告诉我进行补充 面试官: 如何处理事务中的性能问题&#xff1f; 我回答: 在Java高级面试中&#xff0c;Spring MVC和Struts是两个常被提及的MVC框架&#xff0c;它们各自具有独特的特点和优势。以下是对这两个框架的详细比较&#xff1a; 架构设计方面 Sp…