HarmonyOS应用开发实战:猫猫大作战-Want 的构造和 startAbility 的使用
·


前言
在 HarmonyOS 中,Want 是 Ability 之间通信的载体——通过 startAbility 方法传递 Want 参数启动另一个 Ability。这是跨页面、跨模块乃至跨应用跳转的核心机制。
本文以「猫猫大作战」中从主应用启动排行榜模块为锚点,讲解 Want 的构造和 startAbility 的使用。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–108 篇。本篇是阶段三第 109 篇。
一、startAbility 基本用法
1.1 启动 Ability
import { common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
const want: Want = {
bundleName: 'com.maomaodazuozhan.game',
abilityName: 'EntryAbility',
parameters: {
targetPage: 'ranking'
}
};
getContext().startAbility(want).catch((err: BusinessError) => {
console.error(`启动失败: ${err.message}`);
});
1.2 Want 核心字段
| 字段 | 必填 | 说明 |
|---|---|---|
bundleName |
✅ | 目标应用的包名 |
abilityName |
✅ | 目标 Ability 名称 |
parameters |
❌ | 自定义参数(JSON) |
uri |
❌ | 统一资源标识符 |
二、接收 Want
// EntryAbility.ets
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
const targetPage = want.parameters?.['targetPage'] as string;
if (targetPage === 'ranking') {
AppStorage.setOrCreate('targetPage', 'pages/Leaderboard');
}
}
三、总结
startAbility + Want 是 Ability 之间通信的标准方式,支持跨模块、跨应用跳转。
核心要点:
startAbility(want)启动目标 AbilityWant包含 bundleName、abilityName、parameters 等字段- 目标 Ability 的
onCreate中解析参数
下一篇预告:第 110 篇将深入 startAbilityByType——系统类型启动。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
更多推荐


所有评论(0)