鸿蒙实战:使用隐式Want启动Ability

server/2024/11/20 17:21:26/

文章目录

  • 1. 实战概述
  • 2. 实现步骤
    • 2.1 创建鸿蒙应用项目
    • 2.2 修改Index.ets代码
    • 2.3 创建LuzhouAbility
    • 2.4 创建Luzhou页面
    • 2.5 设置模块配置文件
  • 3. 测试效果
  • 4. 实战总结

1. 实战概述

  • 本次鸿蒙应用实战,先创建项目“ImplicitWantStartAbility”,接着修改Index.ets等代码构建页面与隐式Want逻辑,创建Luzhou相关文件及设置配置文件匹配条件,最终测试时点击按钮可隐式匹配,实现从首页跳转至泸州页面的效果。

2. 实现步骤

2.1 创建鸿蒙应用项目

  • 创建鸿蒙应用项目 - ImplicitWantStartAbility
    在这里插入图片描述
  • 单击【Finish】按钮,生成应用基本框架
    在这里插入图片描述

2.2 修改Index.ets代码

  • 首页 - Index.ets
    在这里插入图片描述
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的UIAbilityContextthis.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组件构建页面,含文本与按钮。点击“去泸州”按钮时,构造含特定actionentities的隐式Want对象,通过上下文尝试启动对应能力,同时利用日志记录启动成功或失败情况,实现交互并监测启动结果。

2.3 创建LuzhouAbility

  • ets里创建LuzhouAbility.ets
    在这里插入图片描述
  • 修改代码,将pages/Index改成pages/Luzhou
    在这里插入图片描述

2.4 创建Luzhou页面

  • pages里创建Luzhou.ets文件
    在这里插入图片描述
@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,设置匹配条件
    在这里插入图片描述
{                                                              "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实现页面跳转功能。从构建基本框架到完善各模块,最终达成点击按钮顺利切换页面的效果,展示了鸿蒙开发中功能实现的一套有效流程。

http://www.ppmy.cn/server/143507.html

相关文章

SSL/TLS协议简介

目录 1 概述 2 主要功能 3 技术演化 3.1 明文时代 3.2 对称加密时代 3.3 非对称加密时代 3.4 公证时代 2.5 SSL/TLS协议时代 4 组件协议 4.1 握手协议(Handshake Protocol) 4.2 加密协议(Record Protocol) 4.3 警报协…

MATLAB 使用教程 —— 常用函数

字符串strmatch 函数:字符串匹配 存在性exist 函数:检查是否存在isfield 函数:检查结构体中是否存在特定字段 文件相关fileparts 函数:分解文件路径fullfile 函数:构建完整文件路径 字符串 strmatch 函数:…

数据结构(单向链表——c语言实现)

链式存储的优缺点: 优点: 1、动态分配内存: 链式存储不需要在数据插入之前分配固定大小的数组或内存块,因此它更适合存储动态变化的数据 2、高效的插入和删除操作: 在链表中插入或删除元素只需要调整相邻节点的指…

昇腾系列双处理边缘计算盒子DA500I,打造高效低延迟的视觉推理解决方案

随着深度学习模型在机器视觉领域的持续优化,目标检测、识别和分类能力显著提升,对计算硬件提出了更高要求。深度学习任务需要大量计算资源,特别是在边缘设备上,单一处理器盒子如CPU在处理矩阵运算和图像分析时效率较低&#xff0c…

初始Python篇(6)—— 字符串

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …

基于YOLOv8深度学习的智慧城市管理井盖状态检测系统(PyQt5界面+数据集+训练代码)

本研究设计并实现了一种基于YOLOv8深度学习的智慧城市管理井盖状态检测系统,旨在提高城市井盖管理的效率与安全性,减少因井盖缺失或损坏而可能带来的安全隐患。井盖作为城市基础设施的重要组成部分,其状态直接关系到行人和车辆的安全。传统的…

C# 超链接控件LinkLabel无法触发Alt快捷键

在C#中,为控件添加快捷键的方式有两种,其中一种就是Windows中较为常见的Alt快捷键,比如运行对话框,记事本菜单等。只需要按下 Alt 框号中带下划线的字母即可触发该控件的点击操作。如图所示 在C#开发中,实现类似的操作…

[开源重构]Search(Elasticsearch/OpenSearch) Sync Tool

[开源重构]Elasticsearch/OpenSearch Sync Tool 背景 因为要做集群灾备,需要在主备两个集群之间持续性地同步数据,调查过多个方案: CCR(Cross-cluster replication) 官方工具,可惜需要收费,无奈放弃 😦esm 如官方文档说所,最大的特点快. 可惜也发现不少问题&#…