HarmonyOS 鸿蒙Next中多模块页面无法跳转

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next中多模块页面无法跳转
<markdown _ngcontent-yuc-c237="" class="markdownPreContainer">

  • '@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)'
  • 在next系统中,无法使用此方法进行跳转,错误提示如下所示
  • code is 100002, message is Uri error.
  • 应该通过什么方式进行跳转
</markdown>
4 回复

可以使用命名路由的方式跳转共享包页面,如下:

1.命名共享包lib中的页面,如:Index.ets,命名为:LibIndex

[@Entry](/user/Entry)({ routeName: 'LibIndex' })
[@Component](/user/Component)
struct Index {
// ...
}

2.在entry的oh-package.json5中添加共享包依赖:

{
"name": "entry",
// ...
"dependencies": {
"lib": "file:../lib",
}
}

3.在entry中调用:

①在需要路由的文件中导入lib中的Index页面:

import 'lib/src/main/ets/pages/Index'

②跳转:

router.pushNamedRoute({ name: 'LibIndex' })

那算个好消息吧

router 好像没有 pushNamedRoute 方法

针对HarmonyOS 鸿蒙Next中多模块页面无法跳转的问题,以下是一些专业的解决思路:

首先,确认页面路径是否正确。在多模块应用中,页面路径需要包含模块名、ets目录以及页面在main_pages.json中的相对路径,如[@bundle](/user/bundle):${bundleName}/${moduleName}/ets/pages/LaunchPage

其次,检查是否使用了正确的跳转方法。对于跨模块跳转,建议使用pushNamedRoute方法,并通过导入目标页面模块来确保路由名称正确。若使用pushUrl方法,则需要注意路径格式,避免使用无法识别的@bundle方式直接跳转到HAR包中的页面。

此外,还需检查HAP和HSP包的配置。确保Edit Configurations中的deploy multi hap已经添加了需要一同运行的HSP包。

如果以上方法均无法解决问题,建议检查官方文档和FAQ,确认是否有相关的更新或说明。若问题依旧存在,请联系官网客服获取进一步帮助,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部