文章目录
- [1. 实战概述](#1. 实战概述)
- [2. 实现步骤](#2. 实现步骤)
-
- [2.1 创建鸿蒙应用项目](#2.1 创建鸿蒙应用项目)
- [2.2 修改Index.ets代码](#2.2 修改Index.ets代码)
- [2.3 创建LuzhouAbility](#2.3 创建LuzhouAbility)
- [2.4 创建Luzhou页面](#2.4 创建Luzhou页面)
- [2.5 设置模块配置文件](#2.5 设置模块配置文件)
- [3. 测试效果](#3. 测试效果)
- [4. 实战总结](#4. 实战总结)
1. 实战概述
- 本次鸿蒙应用实战,先创建项目"ImplicitWantStartAbility",接着修改Index.ets等代码构建页面与隐式Want逻辑,创建Luzhou相关文件及设置配置文件匹配条件,最终测试时点击按钮可隐式匹配,实现从首页跳转至泸州页面的效果。
2. 实现步骤
2.1 创建鸿蒙应用项目
- 创建鸿蒙应用项目 -
ImplicitWantStartAbility
- 单击【Finish】按钮,生成应用基本框架
2.2 修改Index.ets代码
- 首页 -
Index.ets
ts
import { common, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
const TAG: string = '[Page_Index]';
const DOMAIN_NUMBER: number = 0xFF00;
@Entry
@Component
struct Index {
@State message: string = 'Index页面';
private context = getContext(this) as common.UIAbilityContext;
build() {
Row() {
Column() {
Text(this.message)
.fontSize(40)
.fontWeight(FontWeight.Bold)
.foregroundColor(Color.Yellow)
.margin('10')
// 添加按钮
Button('去泸州')
.fontSize(40)
.width(250)
.height(70)
.backgroundColor('#44dd22')
.foregroundColor('#ffffff')
.onClick(() => {
// 创建隐式Want对象
let wantInfo: Want = {
action: 'action.huawei.luzhou',
entities: ['entity.huawei.luzhou']
};
// context为调用方UIAbility的UIAbilityContext
this.context.startAbility(wantInfo).then(() => {
hilog.info(DOMAIN_NUMBER, TAG, 'startAbility success.');
}).catch((error: BusinessError) => {
hilog.error(DOMAIN_NUMBER, TAG, 'startAbility failed.');
});
});
}
.width('100%');
}
.height('100%')
.backgroundColor('#00662F')
}
}
- 代码说明 :这段代码基于鸿蒙开发框架编写。
Index
组件构建页面,含文本与按钮。点击"去泸州"按钮时,构造含特定action
与entities
的隐式Want
对象,通过上下文尝试启动对应能力,同时利用日志记录启动成功或失败情况,实现交互并监测启动结果。
2.3 创建LuzhouAbility
- 在
ets
里创建LuzhouAbility.ets
- 修改代码,将
pages/Index
改成pages/Luzhou
2.4 创建Luzhou页面
- 在
pages
里创建Luzhou.ets
文件
ts
@Entry
@Component
struct Luzhou {
@State message: string = '泸州欢迎您';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(40)
.fontWeight(FontWeight.Bold)
.foregroundColor(Color.Yellow)
}
.width('100%');
}
.height('100%')
.backgroundColor('#00008B')
}
}
2.5 设置模块配置文件
- 模块配置文件 -
module.json5
- 在
LuzhouAbility
里添加skills
,设置匹配条件
ts
{
"name": "LuzhouAbility",
"srcEntry": "./ets/luzhouability/LuzhouAbility.ets",
"description": "$string:LuzhouAbility_desc",
"icon": "$media:layered_image",
"label": "$string:LuzhouAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"skills": [
{
"entities": [
"entity.huawei.luzhou"
],
"actions": [
"action.huawei.luzhou"
]
}
]
}
3. 测试效果
- 启动应用,显式首页
- 单击【去泸州】按钮,隐式匹配,跳转到泸州页面
4. 实战总结
- 本次鸿蒙应用实战,通过创建项目、修改代码、创建页面及配置文件等系列操作,利用隐式Want实现页面跳转功能。从构建基本框架到完善各模块,最终达成点击按钮顺利切换页面的效果,展示了鸿蒙开发中功能实现的一套有效流程。