华为云 HCCDA 实验:鸿蒙应用页面跳转与数据传递实操
·
实验目标
通过华为云 HCCDA 实验,掌握鸿蒙应用开发中页面跳转与数据传递的核心技术,包括Ability间导航、Intent参数传递及Want对象的配置方法。
实验环境准备
- DevEco Studio:需安装3.0或以上版本,配置鸿蒙SDK。
- 华为云账号:登录HCCDA实验平台,获取实验资源。
- 模拟器或真机:建议使用HarmonyOS 3.0+设备调试。
页面跳转实现
1. 使用startAbility跳转
在源页面调用startAbility方法,通过Want对象指定目标页面的bundleName和abilityName。示例代码:
let wantInfo = {
bundleName: "com.example.demo",
abilityName: "com.example.demo.MainAbility",
parameters: { // 可选参数传递
key1: "value1",
key2: 100
}
};
this.context.startAbility(wantInfo).then(() => {
console.log("跳转成功");
}).catch((err) => {
console.error("跳转失败: " + JSON.stringify(err));
});
2. 隐式跳转配置
在config.json中声明目标页面的skills,匹配action或entities实现隐式跳转:
"abilities": [
{
"name": "DetailAbility",
"skills": [
{
"actions": ["action.detail"],
"entities": ["entity.system"]
}
]
}
]
调用时Want对象仅需指定action:
let wantInfo = { action: "action.detail" };
数据传递方法
1. 正向传参
通过Want的parameters字段传递数据:
let wantInfo = {
bundleName: "com.example.demo",
abilityName: "com.example.demo.DetailAbility",
parameters: {
userId: "123",
userName: "Harmony"
}
};
2. 目标页面接收参数
在目标页面的onCreate或onNewWant中获取参数:
onCreate(want: Want) {
let userId = want.parameters?.userId;
let userName = want.parameters?.userName;
// 使用数据更新UI
}
3. 返回结果至上一页
通过startAbilityForResult实现带返回值的跳转:
// 源页面发起跳转
let wantInfo = { bundleName: "com.example.demo", abilityName: "com.example.demo.EditAbility" };
this.context.startAbilityForResult(wantInfo).then((data) => {
console.log("返回结果: " + JSON.stringify(data));
});
// 目标页面返回数据
let resultData = { status: "success", code: 200 };
this.context.terminateSelfWithResult(resultData);
常见问题排查
- 跳转失败:检查
bundleName和abilityName是否与config.json完全一致,注意大小写。 - 数据未传递:确认
parameters字段命名正确,目标页面通过want.parameters正确解析。 - 权限缺失:若跨应用跳转,需在
config.json中声明requestsPermissions。
实验验证建议
- 创建两个
Ability,实现基础跳转。 - 添加参数传递功能,验证数据完整性。
- 使用
startAbilityForResult测试返回值接收。 - 通过
HiLog输出调试日志,定位潜在问题。
完成实验后,可在华为云HCCDA平台提交实验报告并获取认证积分。
更多推荐

所有评论(0)