【鸿蒙开发】——一篇读懂鸿蒙开发中最重要的概念:UIAbility

前言

不久前华为已经宣布全新HarmonyOS NEXT 鸿蒙星河版将在今年秋天正式和消费者见面,并已经面向开发者开放申请。鸿蒙星河版会有更智能、更极致的原生体验,也标志着鸿蒙迈向其发展的第二阶段。

因此,对于鸿蒙生态建设而言,2024年可谓至关重要,而生态建设的前提,就是要有足够的开发人才。与之对应的,今年春招市场上与鸿蒙相关岗位和人才旺盛的热度,一方面反应了鸿蒙生态的逐渐壮大,另一方面也让人们对鸿蒙下一阶段的发展更具信心。

前端开发者开发鸿蒙移动应用有许多概念需要理解清楚,这对于刚入门的开发者来说有比较大的理解难度。

本文试图从一个概念UIAbility入手,扩展开来,来熟悉鸿蒙开发的各种概念,以便降低入门难度。

什么是UIAbility?

UIAbility 是一种包含用户界面的应用组件,主要用于和用户进行交互。这里有个关键词:应用组件,既然是组件,那么一个APP应用就可以包含多个应用组件。
UIAbility 也是系统调度的单元,为应用提供窗口在其中绘制界面。
每一个 UIAbility 实例,都对应于一个最近任务列表中的任务。
那什么是任务列表呢?
当你同时打开很多软件时,就可以看到一个任务列表,如下图所示:
在这里插入图片描述

一个应用可以有一个 UIAbility,也可以有多个 UIAbility,如下图所示。
在这里插入图片描述

例如,浏览器应用可以通过一个 UIAbility 结合多页面的形式让用户进行的搜索和浏览内容。

而聊天应用增加一个"外卖功能"的场景,则可以将聊天应用中"外卖功能"的内容独立为一个 UIAbility,当用户打开聊天应用的"外卖功能",查看外卖订单详情,此时有新的聊天消息,即可以通过最近任务列表切换回到聊天窗口继续进行聊天对话。

这样做的好处就是把功能解耦,进行一个模块一个模块的管理,这样极大的提高了项目的可维护性。
对于一个 UIAbility 来说,通常是对应于多个页面。建议将一个独立的功能模块放到一个UIAbility中,以多页面的形式呈现。例如新闻应用在浏览内容的时候,可以进行多页面的跳转使用。

UIAbility内页面的跳转和数据传递

UIAbility 的数据传递包括有 UIAbility 内页面的跳转和数据传递、UIAbility间的数据跳转和数据传递,本文主要讲解 UIAbility 内页面的跳转和数据传递。

在一个应用只包含一个 UIAbility 的场景下,可以通过新建多个页面来实现和丰富应用的内容。这会涉及到 UIAbility 内页面的新建以及 UIAbility 内页面的跳转和数据传递。

打开DevEco Studio,选择一个Empty Ability工程模板,创建一个工程,例如命名为MyApplication。

●在src/main/ets/entryability目录下,初始会生成一个 UIAbility 文件EntryAbility.ts。可以在 EntryAbility.ts 文件中根据业务需要实现 UIAbility 的生命周期回调内容。
●在src/main/ets/pages目录下,会生成一个 Index 页面。这也是基于 UIAbility 实现的应用的入口页面。可以在Index页面中根据业务需要实现入口页面的功能。
●在src/main/ets/pages目录下,右键 New->Page,新建一个Second页面,用于实现页面间的跳转和数据传递。

为了实现页面的跳转和数据传递,需要新建一个页面。在原有 Index 页面的基础上,新建一个页面,例如命名为 Second.ets。

页面间的导航可以通过页面路由 router 模块来实现。页面路由模块根据页面url找到目标页面,从而实现跳转。

通过页面路由模块,可以使用不同的 url 访问不同的页面,包括跳转到 UIAbility 内的指定页面、用UIAbility 内的某个页面替换当前页面、返回上一页面或指定的页面等。

页面跳转

在使用页面路由之前,需要先导入 router 模块,如下代码所示。

import router from '@ohos.router';

页面跳转的几种方式,根据需要选择一种方式跳转即可。
方式一:router.pushUrl()方法
js复制代码router.pushUrl({
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值