harmony OS NEXT-启动页开发

news/2025/3/24 3:07:12/文章来源:https://www.cnblogs.com/yihonghh/p/18785307

鸿蒙启动页开发

1.1 更改应用名称和图标

1.更改应用图标

  1. 找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可

image-20250224120305604

2.更改应用名称

image-20250224120614234

image-20250302234913382

3.效果展示

image-20250302235217531

2.1 广告页面开发

image-20250302182914432

3.1 详细介绍

3.1.1 启动页面

import { PrivacyDialog } from '../views/components/PrivacyDialog'
import { router, window } from '@kit.ArkUI'
import { preferences } from '@kit.ArkData'
import { common } from '@kit.AbilityKit'@Entry
@Component
struct launchPage {//获取应用的上下文context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext//获取页面的上下文// context:Context = getContext()@StateisStore: boolean = trueaboutToAppear(): void {window.getLastWindow(getContext()).then(win => {win.setWindowLayoutFullScreen(true)})const store = preferences.getPreferencesSync(this.context, {'name': 'infoStore'})this.isStore = store.getSync('isStore', true) as booleanconsole.info(`userAction: ${this.isStore}`)}async saveInfo() {const store = preferences.getPreferencesSync(this.context, {'name': 'infoStore'})store.putSync('isStore', false)store.flush()}//在页面出现之后:需要展示弹窗onPageShow(): void {//isStore用于定义是否保存的标识  如果显示true,就不用打开自定义弹窗,直接跳到广告界面// promptAction.showToast({//   message: this.isStore+''// })if (this.isStore) {this.controller.open()} else {//跳到广告界面router.pushUrl({url: 'pages/AdvertisementPage'})}}// context:Context:getContext()controller: CustomDialogController = new CustomDialogController({builder: PrivacyDialog({cancel: () => {this.context?.terminateSelf()//不同意关闭应用},confirm: () => { //当你点击同意,就会调用saveInfo方法this.saveInfo()//TODO 跳到广告页面router.pushUrl({url: 'pages/AdvertisementPage'})},}),alignment: DialogAlignment.Bottom, //基准位置// offset:{dx:30,dy:30}}//设置弹窗位置)build() {Stack() {//设置第一层Image($r('app.media.back'))Column({ space: 10 }) {Image($r('app.media.study_app')).width(80).aspectRatio(1)Text('健康学习').fontSize(20).fontWeight(FontWeight.Bold)Text('学习总有新玩法').fontWeight(FontWeight.Bold)}.width('100%').height('100%').padding({top: 100})}.height('100%').width('100%')}
}

3.1.2 自定义弹层

import { router } from '@kit.ArkUI'@Preview
@CustomDialog
export struct PrivacyDialog {controller:CustomDialogController = new CustomDialogController({builder: ''})//定义两个用来接收的方法cancel:Function = ()=>{}confirm:Function = ()=>{}build() {Column(){Text('欢迎使用我的应用')Text('我们充分尊重用户的隐私权,并按照法律要求和业界成熟的安全标准,为您的个人信息提供相应的安全保护措施。')Text('协议隐私保护声明').fontColor('#007fdd').onClick(()=>{// TODOrouter.pushUrl({url:''})})Text('(以下简称为“本声明”)以便您了解我们如何搜集、使用、披露、保护、存储、及传输您的个人数据。请您仔细阅读本声明。如您有任何疑问,请告知我们。')Row(){Text('不同意').fontColor('#007fdd').onClick(()=>{this.controller.close()   //点击不同意,关闭this.cancel()})Blank()Text('同意').fontColor('#007fdd').onClick(()=>{this.controller.close()this.confirm()})}.width('70%')}}
}

3.1.3 广告页面

import { router, window } from '@kit.ArkUI'@Entry
@Component
struct AdvertisementPage {@State time: number = 5@State timeID: number = -1aboutToAppear(): void {window.getLastWindow(getContext()).then(win => {win.setWindowLayoutFullScreen(true)})}onPageShow(): void {this.timeID = setInterval(() => {console.log('test', this.time)if (this.time > 0) {this.time--} else if (this.time == 0) {clearTimeout(this.timeID)router.pushUrl({url: 'pages/Index'})}}, 1000)}build() {Stack() {Image($r('app.media.back'))Row() {Text('跳过广告' + this.time + 's').fontSize(20).backgroundColor('rgba(0,0,0,0.1)').padding(8).borderRadius(30)}.width('100%').height('100%').justifyContent(FlexAlign.End).alignItems(VerticalAlign.Top).padding({top: 30,right: 30})Row({ space: 10 }) {Image($r('app.media.study_app')).width(80).aspectRatio(1)Column({ space: 5 }) {Text('健康学习').fontSize(30)Text('学习总有新玩法').fontSize(20)}.height(80).justifyContent(FlexAlign.Start)}.width('100%').height('100%').justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Bottom).padding({bottom: 16})}.height('100%').width('100%')}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902507.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

harmony OS NEXT–状态管理器–@State详解

鸿蒙Harmony--状态管理器--@State详解 1.1 定义 @State装饰的变量,或者称为状态变量,一旦变量拥有了状态属性,就可以触发其直接绑定UI组件的刷新。当状态改变时,UI会发生对应的渲染变化 ,@State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问。在…

harmony OS NEXTUI开发

UI开发 1. 布局概述 1.1 开发流程1.先确定开发流程 -> 2.分析页面元素构成 ->3.选用合适的布局容器组件1.3 布局元素组成:盒模型2.1 布局分类 2.1 线性布局线性布局是开发中最常用、最基础的布局,通过线性容器Row和Column构建2.1.1 线性布局子元素排列方向:主轴布局子…

harmony OS NEXT组件结构

组件结构 1. 认识基本的组件结构ArkTS通过装饰器@Component 和@Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件 自定义组件中提供了一个build函数,开发者需要在函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述规范srtuct-自定义组件基于stru…

如何使用 vxe-table 来实现高亮行与高亮列,单元格选择高亮移动功能

如何使用 vxe-table 来实现高亮行与高亮列,单元格选择高亮移动功能 查看官网:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:https://gitee.com/x-extends/vxe-table 效果代码 通过 rowConfig.isCurrent 启用高亮行功能,columnConfig.isCurre…

Browser-use探索-webui

UI化的Browser-use 拉项目下来:git clone https://github.com/browser-use/web-ui.git # 拉取项目依次安装依赖:# pip install browser-use# playwright install# pip install -r requirements.txt 重新搞个配置文件.env:OPENAI_ENDPOINT=https://api.openai.com/v1 OPENAI_…

Web 页面实现图片放大镜效果

Web 页面实现图片放大镜效果Web 页面实现图片放大镜效果 下面是一个完整的示例代码: <!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>图片放大镜效果</title><style>.container {position: relative;width…

3.A+B 问题三

用while(hasNext())来判断是非还有输入 后面用if判断结束循环的条件 break 结束循环; continue 跳过本次循环 进入下一次循环

save actions 设置

activate save actions on save – 在保存的时候激活save actions optimize imports – 自动删除没有引用的importsreformat file – 自动格式化代码add missing @Override – 在save actions激活的时候直接提添加overrideadd a serialVersionUID – 自动添加序列化id

同源策略SpringBoot允许跨域请求配置

完全允许(测试环境) import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotat…

【Vscode】用Vscode配置简约方便的Qt环境!

其实本文是在好不容易配好的情况下写成 故进食后人 Qt Creator的那个页面真的好丑 写完上学期大作业 这学期还要写的时候终于受不了了 而且各种报错什么的非常不好用 不知道是在干嘛 毕竟谁不想用舒服的字体 然后再配上麻衣学姐的背景和看板娘写代码呢?() 于是我开始探索怎么…

17.6K star!后端接口零代码的神器来了,腾讯开源的ORM库太强了!

"🏆 实时零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端定制返回 JSON 的数据和结构"嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法"🏆 实时零代码、全功能、强安全 ORM 库 🚀 后端接口和文…

WPF 和 Avalonia 开发者的 html css 前端指南 WrapPanel 篇

本文主要是向大家列出 WPF 和 Avalonia 的 WrapPanel 在 html 和 css 的实现方法。WPF 和 Avalonia 开发者的 html css 前端指南 WrapPanel 篇笔者前端框架使用的是 Vue3 + Deno。 笔者主要会以 Avalonia 作为 C# 技术部分的示例。 本文主要是向大家列出 WPF 和 Avalonia 的 Wr…