①不同 Slice 间跳转,同一个 Ability 中,优点是方便,高效,缺点是业务逻辑复杂度受限。
button.setClickedListener( listener -> present(new SecondAbilitySlice(), new Intent()) ); ②使用 Intent 借助于 ElementName,最常用的页面跳转方式,方便传递参数以及实现相对复杂的业务逻辑交互。
ElementName elementName = new ElementName(……); intent.setElement(elementName); intent.setParam(……); startAbility(intent); ③借助于 Operation,可实现跨应用页面跳转。
Intent intent = new Intent(); Operation operation = new Intent.OperationBuilder() .withDeviceId("") .withBundleName("com.demoapp") .withAbilityName("com.demoapp.FooAbility") .build(); intent.setOperation(operation); startAbility(intent); ④Rout 路由(JS),调用 router.push() 接口将 uri 指定的页面添加到路由栈中,即跳转到 uri 指定的页面。在调用 router 方法之前,需要导入 router 模块。
调用 router.push() 路由到详情页:
// index.js import router from '@system.router'; export default { launch() { router.push ({ uri: 'pages/detail/detail', }); }, } 调用 router.back() 回到首页:
// detail.js import router from '@system.router'; export default { launch() { router.back(); }, } ⑤通过迁移实现分布式设备间页面传递(有请求迁移和请求回迁两种操作)。
1)需实现 IAbilityContinuation 接口
2)需要权限:
ohos.permission.GET_DISTRIBUTED_DEVICE_INFO:用于允许获取分布式组网内的设备列表和设备信息 ohos.permission.DISTRIBUTED_DATASYNC:用于允许不同设备间的数据交换 ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE:用于允许监听分布式组网内的设备状态变化 ohos.permission.READ_USER_STORAGE:读取存储卡中的内容 ohos.permission.WRITE_USER_STORAGE:修改或删除存储卡中的内容 ohos.permission.GET_BUNDLE_INFO:用于查询其他应用的信息 ohos.permission.servicebus.ACCESS_SERVICE:分布式数据传输的权限 com.huawei.hwddmp.servicebus.BIND_SERVICE:系统应用使用权限 3)需要获取分布式设备 ID(NetworkID)
核心服务类:IContinuationRegisterManager。
服务类的常用 API 方法:
getContinuationRegisterManager();获取服务类的对象
register();注册服务
showDeviceList();获取设备列表
unregister();注销服务
4)请求迁移关键步骤(假定设备 A 向设备 B 迁移)
如下:
需要迁移的 page 实现 IAbilityContinuation 接口
复写 onStartContinuation() 方法,做迁移前的准备工作
复写 onSaveData()方法,保存迁移数据
在设备 B 上复写 onRestoreData() 方法,恢复迁移数据
在设备 A 上复写 onCompleteContinuation() 方法,做迁移后的收尾工作
调用 continueAbility() 或 continueAbilityReversibly() 发起迁移
5)请求回迁需在设备 A 上调用 reverseContinueAbility() 请求回迁
以下关键步骤类似 4)。
如果你想成为一名鸿蒙开发者,以下这些资料将是十分优质且有价值,让你的鸿蒙开发之路事半功倍!相对于网上那些碎片化的知识内容,这份学习资料的知识点更加系统化,更容易理解和记忆。
内容包含了:【OpenHarmony多媒体技术、Stage模型、ArkUI多端部署、分布式应用开发、音频、视频、WebGL、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。
鸿蒙Next全套VIP学习资料←点击领取!(安全链接,放心点击)


上一篇:开源啦!!!基于鸿蒙ArkTS封装的图表组件《McCharts》,大家快来一起共创
下一篇:HarmonyOS鸿蒙开发组件状态管理详细说明(State、Prop、Link、Provide和Consume、Watch、ObjectLink和Observed)