实验目标

通过华为云 HCCDA 实验,掌握鸿蒙应用开发中页面跳转与数据传递的核心技术,包括Ability间导航、Intent参数传递及Want对象的配置方法。


实验环境准备

  • DevEco Studio:需安装3.0或以上版本,配置鸿蒙SDK。
  • 华为云账号:登录HCCDA实验平台,获取实验资源。
  • 模拟器或真机:建议使用HarmonyOS 3.0+设备调试。

页面跳转实现

1. 使用startAbility跳转

在源页面调用startAbility方法,通过Want对象指定目标页面的bundleNameabilityName。示例代码:

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,匹配actionentities实现隐式跳转:

"abilities": [
  {
    "name": "DetailAbility",
    "skills": [
      {
        "actions": ["action.detail"],
        "entities": ["entity.system"]
      }
    ]
  }
]

调用时Want对象仅需指定action

let wantInfo = { action: "action.detail" };


数据传递方法

1. 正向传参

通过Wantparameters字段传递数据:

let wantInfo = {
  bundleName: "com.example.demo",
  abilityName: "com.example.demo.DetailAbility",
  parameters: {
    userId: "123",
    userName: "Harmony"
  }
};

2. 目标页面接收参数

在目标页面的onCreateonNewWant中获取参数:

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);


常见问题排查

  • 跳转失败:检查bundleNameabilityName是否与config.json完全一致,注意大小写。
  • 数据未传递:确认parameters字段命名正确,目标页面通过want.parameters正确解析。
  • 权限缺失:若跨应用跳转,需在config.json中声明requestsPermissions

实验验证建议

  1. 创建两个Ability,实现基础跳转。
  2. 添加参数传递功能,验证数据完整性。
  3. 使用startAbilityForResult测试返回值接收。
  4. 通过HiLog输出调试日志,定位潜在问题。

完成实验后,可在华为云HCCDA平台提交实验报告并获取认证积分。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐