HarmonyOS中实现页面跳转的方法汇总

系统 OpenHarmony
文章由鸿蒙社区产出,想要了解更多内容请前往:51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

[[399885]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 –1. 不同Slice间跳转,同一个Ability中,优点是方便,高效,缺点是业务逻辑复杂度受限;

  1. button.setClickedListener( 
  2.     listener -> present(new SecondAbilitySlice(), new Intent()) 
  3. ); 

 –2. 使用Intent借助于ElementName,最常用的页面跳转方式,方便传递参数以及实现相对复杂的业务逻辑交互;

  1. ElementName elementName = new ElementName(……); 
  2. intent.setElement(elementName); 
  3. intent.setParam(……); 
  4. startAbility(intent); 

 –3. 借助于Operation,可实现跨应用页面跳转;

  1. Intent intent = new Intent(); 
  2. Operation operation = new Intent.OperationBuilder() 
  3.         .withDeviceId(""
  4.         .withBundleName("com.demoapp"
  5.         .withAbilityName("com.demoapp.FooAbility"
  6.         .build(); 
  7.  intent.setOperation(operation); 
  8. startAbility(intent); 

 –4. Rout路由(JS),调用router.push()接口将uri指定的页面添加到路由栈中,即跳转到uri指定的页面。在调用router方法之前,需要导入router模块。

调用router.push()路由到详情页;调用router.back()回到首页;

  1. // index.js 
  2. import router from '@system.router'
  3. export default { 
  4.   launch() { 
  5.     router.push ({ 
  6.       uri: 'pages/detail/detail'
  7.     }); 
  8.   }, 

  1. // detail.js 
  2. import router from '@system.router'
  3. export default { 
  4.   launch() { 
  5.     router.back(); 
  6.   }, 

 –5. 通过迁移实现分布式设备间页面传递(有请求迁移和请求回迁两种操作)

1)需实现IAbilityContinuation接口

2)需要权限

  1. ohos.permission.GET_DISTRIBUTED_DEVICE_INFO:用于允许获取分布式组网内的设备列表和设备信息 
  2. ohos.permission.DISTRIBUTED_DATASYNC:用于允许不同设备间的数据交换 
  3. ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE:用于允许监听分布式组网内的设备状态变化 
  4. ohos.permission.READ_USER_STORAGE:读取存储卡中的内容 
  5. ohos.permission.WRITE_USER_STORAGE:修改或删除存储卡中的内容 
  6. ohos.permission.GET_BUNDLE_INFO:用于查询其他应用的信息 
  7. ohos.permission.servicebus.ACCESS_SERVICE:分布式数据传输的权限 
  8. 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)

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2009-07-03 17:24:31

Servlet页面跳转

2009-12-24 17:57:53

WPF页面跳转

2021-09-18 14:45:26

鸿蒙HarmonyOS应用

2009-12-02 20:02:18

PHP实现页面跳转

2009-12-02 19:42:24

PHP页面自动跳转

2015-05-05 10:51:32

php页面跳转方法

2009-07-02 09:25:41

JSP实现页面跳转

2009-12-16 17:24:26

Ruby on Rai

2021-06-22 16:40:32

鸿蒙HarmonyOS应用

2010-08-05 09:39:17

Flex页面跳转

2009-07-03 17:48:24

JSP页面跳转

2010-08-13 13:25:53

Flex页面跳转

2011-05-11 16:54:49

JSP

2009-02-17 10:40:26

页面跳转JSP教程

2012-04-19 16:41:24

Titanium视频实现页面跳转

2009-12-11 13:25:01

PHP页面跳转

2010-05-11 16:55:12

Windows Pho

2009-12-02 19:08:19

PHP跳转代码

2010-08-06 09:28:53

Flex页面跳转

2010-08-05 09:33:08

Flex页面跳转
点赞
收藏

51CTO技术栈公众号