讨论广场 问答详情
如何通过路由跳转到一个只有页面没有UIAbility的模块?
HarmonyOS社区小助手 2024-01-19 10:58:48
91 评论 分享
鸿蒙官网鸿蒙应用开发

如题

91 评论 分享
写回答
全部评论(2)

解决方案
对于没有UIAbility但依然提供可跳转页面的模块,应该考虑使用Library类型的HSP实现相应的功能,从UIAbility跳转HSP中的页面可参考下列方式:

router.pushUrl({ 
url: '@bundle:com.example.hmservice/library/ets/pages/menu' 
}).then(() => { 
  console.log("push page success"); 
}).catch(err => { 
  console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); 
})
其中router.pushUrl方法的入参中url的内容模板为:
'@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)'

参考链接

Stage模型应用程序包结构HAR开发指导应用内HSP开发指导

2024-01-19 11:01:10

问题描述
现在有模块A,B。A模块为Entry类型,其中有个UIAbility,有pages。B模块是Feature类型,没有UIAbility,但是有pages。整个App只想使用一个UIAbility的情况下,A模块怎么跳转到B模块的页面。
内容澄清
●Module分为“Ability”和“Library”两种类型:“Ability”类型的Module对应于编译后的HAP;“Library”类型的Module对应于HAR或者HSP
●HAP可分为Entry和Feature两种类型:Entry类型的HAP是应用的主模块,通常用于实现应用的入口界面、入口图标、主特性功能等;Feature类型的HAP是应用的动态特性模块,通常用于实现应用的特性功能,可以配置成按需下载安装。
●HAR静态共享包,和HSP动态共享包,都是为了实现代码和资源的共享,都可以包含代码、C++库、资源和配置文件。其中HAR不支持在配置文件中声明pages页面,HSP支持配置pages页面。

2024-01-19 10:59:12