如何通过路由跳转到一个只有页面没有UIAbility的模块

现在有模块A,B。A模块为Entry类型,其中有个UIAbility,有pages。B模块是Feature类型,没有UIAbility,但是有pages。整个App只想使用一个UIAbility的情况下,A模块怎么跳转到B模块的页面。

HarmonyOS
2024-01-20 10:03:35
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
hxiaoyv
  • Module分为“Ability”和“Library”两种类型:“Ability”类型的Module对应于编译后的HAP;“Library”类型的Module对应于HAR或者HSP
  • HAP可分为Entry和Feature两种类型:Entry类型的HAP是应用的主模块,通常用于实现应用的入口界面、入口图标、主特性功能等;Feature类型的HAP是应用的动态特性模块,通常用于实现应用的特性功能,可以配置成按需下载安装。
  • HAR静态共享包,和HSP动态共享包,都是为了实现代码和资源的共享,都可以包含代码、C++库、资源和配置文件。其中HAR不支持在配置文件中声明pages页面,HSP支持配置pages页面。

解决方案

对于没有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开发指导

分享
微博
QQ
微信
回复
2024-01-20 23:32:52
相关问题
如何通过路由方式打开半屏
311浏览 • 1回复 待解决
如何跳转到WIFI列表页面
237浏览 • 1回复 待解决
路由跳转如何通过scheme方式分发
749浏览 • 1回复 待解决
如何跳转到系统发送短信页面
1878浏览 • 1回复 待解决
HarmonyOS 怎么跨模块路由跳转界面
703浏览 • 1回复 待解决