鸿蒙系统实现页⾯跳转⽅法汇总!
①不同 Slice 间跳转,同⼀个 Ability 中,优点是⽅便,⾼效,缺点是业务逻辑复杂度受限。
button.setClickedListener(
listener -> present( newSecondAbilitySlice, newIntent)
);
②使⽤ Intent 借助于 ElementName,最常⽤的页⾯跳转⽅式,⽅便传递参数以及实现相对复杂的业务逻辑交互。ElementName elementName = newElementName(……);
intent.setElement(elementName);
intent.setParam(……);
startAbility(intent);
③借助于 Operation,可实现跨应⽤页⾯跳转。
Intent intent = newIntent;
Operation operation = newIntent.OperationBuilder
.withDeviceId( "")
.withBundleName( "com.demoapp")
.withAbilityName( "com.demoapp.FooAbility")
.build;
intent.setOperation(operation);
intent.setOperation(operation);
startAbility(intent);
④Rout 路由(JS),调⽤ router.push 接⼝将 uri 指定的页⾯添加到路由栈中,即跳转到 uri 指定的页⾯。在调⽤ router ⽅法之前,需要导⼊ router 模块。
调⽤ router.push 路由到详情页:
// index.js
importrouter from'@uter';
exportdefault{
launch {
router.push ({
uri: 'pages/detail/detail',
});
},
}
调⽤ router.back 回到⾸页:
// detail.js
importrouter from'@uter';
exportdefault{
升级鸿蒙系统步骤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)。
专注开源技术,共建鸿蒙⽣态
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论