HarmonyOS应用开发基础——页面跳转三种类型九种跳转方式
HarmonyOS应用开发基础
Ability
一定有同学好奇,为什么我来看页面跳转,首先要学习Ability?因为在HarmonyOS编程之中,Ability是整个应用的基本单位,我们要运用的页面跳转,其实根本上就是Ability跳转,所以我们要先大概了解了Ability,才能深度的去学习。
Ability概述
Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个
Ability),HarmonyOS支持应用以Ability为单位进行部署。
Ability分类
1.FA(Feature Ability)
2.PA(Particle Ability)
每种类型为开发者提供了不同的模板,以便实现不同的业务功能。
FA(Feature Ability)
FA支持Page Ability,简单理解就是手机应用中的一个界面。一个界面就是一个FA。
Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用
一个AbilitySlice实例表示。
PA(Particle Ability)
FA是有有界面的,而Particle Ability(PA)是无界面的,简单理解就是可以运行在后台的一个服务。
PA支持Service Ability和Data Ability;
1)Service模板
用于提供后台运行任务的能力。
2)Data模板
用于对外部提供统一的数据访问抽象。一般是跟数据相关的,比如:如果我们要运行访问数据库。那么就可以用
PA中的Data模板。
我们要学习的页面跳转,就是要从FA入手
页面FA和切片之间的关系
页面中如何添加多个切片
页面之间的跳转
想要学习跳转,首先要知道一个知识点就是意图,表示我跳转的时候,跳到哪里以及携带什么参数进行跳转?
Intent
Intent概述
Intent是对象之间传递信息的载体。
例如,当一个Ability需要启动另一个Ability时,或者一个AbilitySlice需要导航到另一个AbilitySlice时,可以通过
Intent指定启动的目标同时携带相关数据。Intent的构成元素包括Operation与Parameters:
/**
**Operation:表示要跳转的目的地
**Parameters:跳转时所携带的数据
**/
Intent详解
跳转
跳转方式
1、无参数无返回值跳转
2、有参数无返回值跳转
3、有参数有返回值跳转
跳转风格
1、同一个页面中,不同切片之间的跳转(无参,有参,有返回结果)最基础的跳转
2、不同页面中,主切片跟主切片之间的跳转(无参,有参,有返回结果)
3、不同页面中,主切片跟非主切片之间的跳转(无参,有参,有返回结果)
3*3是不是9种呢
熟悉跳转方式(跳转风格一)
第一步:先在主页面ability_main添加好想要的组件,例如Text,Button
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="center"
ohos:orientation="vertical">
<Button
ohos:id="$+id:but1"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="#21a8fd"
ohos:layout_alignment="horizontal_center"
ohos:text="无参数无返回的跳转"
ohos:text_size="40vp"
ohos:top_margin="30vp"
/>
<Button
ohos:id="$+id:but2"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="#21a8fd"
ohos:layout_alignment="horizontal_center"
ohos:text="有参数无返回的跳转"
ohos:text_size="40vp"
ohos:top_margin="30vp"
/>
<Button
ohos:id="$+id:but3"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="#21a8fd"
ohos:layout_alignment="horizontal_center"
ohos:text="有参数有返回的跳转"
ohos:text_size="40vp"
ohos:top_margin="30vp"