跨设备流转(CrossDeviceFlow)使用指导

← 返回组件参考 · 全部使用指导

跨设备流转(CrossDeviceFlow)使用指导

跨设备流转组件 - 实现应用在鸿蒙设备间的无缝迁移。 鸿蒙独有组件,基于 Mission continuation/DistributedMissionManager API。

运行前提与搭建步骤

这些案例在包含该组件的鸿蒙 AI 伴侣或 HAP 中运行。Android 侧是供网页编辑器生成积木的声明,不能用安卓伴侣验证鸿蒙系统能力。

  1. 在设计器拖入 CrossDeviceFlow,保留名称 CrossDeviceFlow1;拖入案例涉及的按钮、文本输入框以及一个标签 标签1,按代码中的名称重命名。
  2. 根据下面的业务说明准备素材、JSON 或系统目标。案例中的按钮代表分步操作,先等初始化、加载或创建成功,再执行下一步。
  3. 接住完成事件与错误事件,将原始 JSON 或错误显示在标签。先确认原始结果,再编写业务处理。

状态输入框放合法 JSON,例如 {“page”:1};设备编号从可用目标列表获取,不能用显示名称替代。目标应用需配置对应流转入口,成功与失败都接事件验证。

案例一:保存页面状态

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when 按钮_保存.Click() {
  CrossDeviceFlow1.SaveState(文本输入框_状态.Text)
}
when CrossDeviceFlow1.StateSaved() {
  标签1.Text = "状态已保存"
}

案例二:选择目标并发起流转

when 按钮_流转.Click() {
  CrossDeviceFlow1.SelectTarget(文本输入框_设备编号.Text)
  CrossDeviceFlow1.StartContinuation()
}
when CrossDeviceFlow1.FlowCompleted(目标设备) {
  标签1.Text = join("流转完成:", 目标设备)
}
when CrossDeviceFlow1.FlowFailed(目标设备, 错误信息) {
  标签1.Text = 错误信息
}
when CrossDeviceFlow1.StateRestored(状态JSON) {
  标签1.Text = 状态JSON
}

参数与返回值速查

JSON 参数是文本,不能直接传字典;需要字典时可用 Web 客户端的 JSON 解码积木转换返回文本。完整默认值与类型见组件参考。

方法或事件 参数与用途
获取可用目标(GetAvailableTargets) 无参数。获取当前可用的流转目标设备列表,返回JSON格式。
获取本机设备信息(GetLocalDeviceInfo) 无参数。获取本地设备的详细信息,返回JSON格式。
恢复状态(RestoreState) 无参数。从流转中恢复应用状态,返回JSON格式的状态数据。
保存状态(状态JSON)(SaveState) 状态JSON:文本。保存当前应用状态,为流转做准备。参数为JSON格式的状态数据。
选择目标(目标设备ID)(SelectTarget) 目标设备ID:文本。选择指定的设备作为流转目标。
开始接续(StartContinuation) 无参数。开始将应用流转到选中的目标设备。
可用目标变化时(AvailableTargetsChanged) 无参数。可用的流转目标设备列表发生变化时触发。
出错时(错误信息)(Error) 错误信息:文本。发生错误时触发,返回错误信息。
流转完成时(目标设备)(FlowCompleted) 目标设备:文本。跨设备流转成功完成时触发。
流转失败时(目标设备,错误信息)(FlowFailed) 目标设备:文本, 错误信息:文本。跨设备流转失败时触发,返回失败原因。
流转开始时(目标设备)(FlowStarted) 目标设备:文本。跨设备流转开始时触发。
状态已恢复时(状态JSON)(StateRestored) 状态JSON:文本。应用状态从流转中恢复完成时触发,返回恢复的状态数据。
状态已保存时(StateSaved) 无参数。应用状态保存完成时触发。

常见问题与验收

现象 检查与预期
安卓运行没有结果 切换到鸿蒙伴侣或 HAP;Android 的声明不会执行该鸿蒙系统能力。
方法已调用但界面没变化 生成 JSON 的方法只是构建数据;按业务流程交给渲染、启动或同步入口,不能将数据生成当成系统操作完成。
初始化、权限或设备失败 记录错误事件,确认系统服务、授权、目标应用或设备可用;只在成功事件后继续下一步。
JSON 解析失败 使用上一组件的原始输出,检查引号和字段类型;空对象用于默认模板演示,不能代替真实目标信息。
两个案例验收 每个按钮单独操作一次,核对对应返回或事件;输入错误目标或取消操作时查看失败事件,不应显示成功提示。
文档反馈