当前位置:   article > 正文

openHarmony应用之间跳转和多个module之间跳转以及同一个moudle下对个page跳转_openharmony 导入的子模块如何在子模块中跳转页面

openharmony 导入的子模块如何在子模块中跳转页面

1、一个app下创建多个module,moudule之间的跳转

如下图,一个app下有多个module,一个是entry,最为程序的主入口;一个是myFirstMoudle,它的Moudule type是 feature(特征)

二、一个手机内的多个app之间的跳转

三、实现代码如下

一、拉起系统应用

二、系统内应用相互跳转和同一个app的多个module之间跳转

  1. // ①跳转相册 —— 系统应用
  2. let want = {
  3. "deviceId": "",
  4. "bundleName": "",
  5. "abilityName": "",
  6. "uri": "",
  7. "type": "image/*",
  8. "action": "android.intent.action.GET_CONTENT",
  9. "parameters": {},
  10. "entities": []
  11. }
  12. // ②跳转系统设置无障碍 —— 系统应用
  13. let want = {
  14. "deviceId": "",
  15. "bundleName": "",
  16. "abilityName": "",
  17. "uri": "",
  18. "action": "android.settings.ACCESSIBILITY_SETTINGS",
  19. "parameters": {},
  20. "entities": []
  21. }
  22. this.context.startAbility(want, (err) => {
  23. if (err.code) {
  24. // 处理业务逻辑错误
  25. console.log('startAbility failed, error.code: ' + JSON.stringify(err.code) +
  26. ' error.message: ' + JSON.stringify(err.message));
  27. return;
  28. }
  29. // 正常逻辑
  30. })
  31. // ③系统内置的 Action 参数
  32. import wantConstant from '@ohos.ability.wantConstant';
  33. // 打开系统设置的另一种方式(使用 HarmonOS 内置的枚举) —— 系统应用
  34. let want = {
  35. "deviceId": "",
  36. "bundleName": "",
  37. "abilityName": "",
  38. "uri": "",
  39. "action": wantConstant.Action.ACTION_WIRELESS_SETTINGS,
  40. "parameters": {},
  41. "entities": []
  42. }
  43. // ④ A UIAbility 和 A-1 UIAbility (A 的 Feature UIAbility,作为子 module 存在),需求是我们要实现 entry 跳转到 feature UIAbility
  44. // 这个跳转自定义的module或者app
  45. if (item.id === 1001){
  46. want.bundleName = "com.examples";
  47. want.abilityName = "FeatTestNotificationAbility";
  48. want.moduleName ="featTestNotification";
  49. want.action = null;
  50. }
  51. this.context.startAbility(want, (err) => {
  52. if (err.code) {
  53. // 处理业务逻辑错误
  54. console.log('startAbility failed, error.code: ' + JSON.stringify(err.code) +
  55. ' error.message: ' + JSON.stringify(err.message));
  56. return;
  57. }
  58. // 正常逻辑
  59. })

三、如果看不懂上面的代码,请阅读官方文档,UIAbility组件概述want参数配置上下文获取

四、同一个moudle内的page页面跳转

在应用内之前实现不同 page 的跳转,我们使用 router 即可,页面跳转主要支持如下两个方法:

  • router.pushUrl():目标页不会替换当前页,而是压入页面栈。这样可以保留当前页的状态,并且可以通过返回键或者调用router.back()方法返回到当前页。
  • router.replaceUrl():目标页会替换当前页,并销毁当前页。这样可以释放当前页的资源,并且无法返回到当前页。

router 跳转模式

  • Standard:标准实例模式,也是默认情况下的实例模式。每次调用该方法都会新建一个目标页,并压入栈顶。
  • Single:单实例模式。即如果目标页的url在页面栈中已经存在同url页面,则离栈顶最近的同url页面会被移动到栈顶,并重新加载;如果目标页的url在页面栈中不存在同url页面,则按照标准模式跳转。

具体跳转查看官方文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/421128
推荐阅读
相关标签
  

闽ICP备14008679号