当前位置: 首页 > news >正文

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

文章目录

  • 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.lryc.cn/news/487950.html

相关文章:

  • go-zero(二) api语法和goctl应用
  • java 操作Mongodb
  • 以Java为例,实现一个简单的命令行图书管理系统,包括添加图书、删除图书、查找图书等功能。
  • [JavaWeb]微头条项目
  • Linux(CentOS)安装达梦数据库 dm8
  • 【专题】中国企业出海洞察报告暨解码全球制胜之道报告汇总PDF洞察(附原数据表)
  • [ 跨域问题 ] 前后端以及服务端 解决跨域的各种方法
  • 网络安全之信息收集-实战-2
  • 利用飞书多维表格自动发布版本
  • 深入内核讲明白Android Binder【一】
  • Photoshop(PS)——人像磨皮
  • 如何用Excel批量提取文件夹内所有文件名?两种简单方法推荐
  • YOLOv8改进,YOLOv8通过RFAConv卷积创新空间注意力和标准卷积,包括RFCAConv, RFCBAMConv,二次创新C2f结构,助力涨点
  • 【实验11】卷积神经网络(2)-基于LeNet实现手写体数字识别
  • chatgpt训练需要什么样的gpu硬件
  • Kubernetes常用命令
  • Flutter:key的作用原理(LocalKey ,GlobalKey)
  • R语言基础入门详解
  • django启动项目报错解决办法
  • 详细描述一下Elasticsearch搜索的过程?
  • Spring、SpringMVC、SpringBoot、Mybatis小结
  • .NET 9 运行时中的新增功能
  • Linux下安装mysql8.0版本
  • kvm-dmesg:从宿主机窥探虚拟机内核dmesg日志
  • 植物明星大乱斗15
  • go-zero(三) 数据库操作
  • SQL面试题——间隔连续问题
  • vim配置 --> 在创建的普通用户下
  • (计算机毕设)基于SpringBoot+Vue的房屋租赁系统的设计与实现
  • 【含开题报告+文档+PPT+源码】基于SpringBoot的医院药房管理系统