HarmonyOS鸿蒙Next中HMRouter可以跳转到发布私库后下载后的har包页面吗

HarmonyOS鸿蒙Next中HMRouter可以跳转到发布私库后下载后的har包页面吗 HMRouter可以跳转到发布私库后下载后的har包页面吗,跳转逻辑也再har包中

3 回复

开发者您好,你这边是不是直接引用了一个.har格式的包,希望har包中配置HMRouter跳转。可以参考以下方案:

【解决方案】

可参考文档跳转其余har/hsp模块页面,我这边已根据文档验证,hap通过HMRouter跳har以及har包中一个页面跳转另外一个页面通过文档中方案都是可行的。

当按路由页面分模块存放时,集成har模块并做路由跳转,需要在har模块下的hvigorfile.ts文件中添加插件 har模块的hvigorfile.ts配置harPlugin插件

import { harTasks } from '@ohos/hvigor-ohos-plugin';
import { harPlugin } from '@hadss/hmrouter-plugin';

export default {
  system: harTasks,
  plugins:[harPlugin()]
}

然后在需要集成相应的har/hsp模块的hap下的oh-package.json5文件添加相应模块依赖,配置完上述内容之后,即可使用HMRouterMgr提供的路由方法做路由跳转 例如har模块定义路由页面:

[@HMRouter](/user/HMRouter)({ pageUrl: 'JumpHarPageCase'})
@Component
export struct JumpHarPageCase {

  build() {
    Flex() {
    }
  }
}

然后在hap或者其余模块跳转到定义的har模块页面,使用HMRouterMgr.push({ pageUrl: 'JumpHarPageCase' })即可跳转

【背景知识】

HMRouter是HarmonyOS上的一款页面跳转场景解决方案,主要用于解决应用中页面间的相互跳转问题。该路由器提供了多种功能特性,包括:

  1. 自定义注解实现路由跳转:开发者可以通过为页面添加@HMRouter注解来配置页面的跳转路径。
  2. 支持HAR/HSP:HMRouter支持处理不同的页面类型,如单例页面和Dialog页面。
  3. 路由拦截和生命周期管理:支持定义拦截器和生命周期,用于处理页面跳转前后的逻辑。
  4. 简化动画配置:允许开发者配置全局动画或特定页面的切换动画。

更多关于HarmonyOS鸿蒙Next中HMRouter可以跳转到发布私库后下载后的har包页面吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HMRouter支持跳转到har包页面。在HarmonyOS Next中,HMRouter通过路由配置可以访问本地或远程的har包资源。需在路由表中正确配置har包的路径和页面信息,确保har包已正确安装并加载。具体实现依赖路由配置和资源加载机制。

可以。HMRouter支持跳转到从私库下载的HAR包中的页面,跳转逻辑也可以封装在HAR包内。

关键在于确保HAR包被正确引用和加载。具体实现如下:

  1. 依赖与引用:在主工程的oh-package.json5中,正确配置对已发布到私库的HAR包的依赖。
  2. 页面注册:HAR包中的页面需要在自身的module.json5中正常声明abilities(UIAbility)和pages路由。
  3. 跳转方法:在主工程中,使用HMRouterpushUrl等方法,其url参数格式为:'bundle://[HAR包的bundleName]/[页面路径]'
    • [HAR包的bundleName]:是在HAR包的module.json5中配置的"bundleName"
    • [页面路径]:是在HAR包module.json5pages列表中定义的页面路径。
  4. 逻辑封装:跳转逻辑(例如组装特定url、条件判断等)完全可以封装在HAR包提供的方法或组件中,主工程调用即可。

示例简述: 假设HAR包的bundleNamecom.example.harmony.harui,其中有一个页面路径定义为"pages/Index"。 在主工程中的跳转代码为:

import router from '@ohos.router';
router.pushUrl({
  url: 'bundle://com.example.harmony.harui/pages/Index'
})

只要HAR包通过依赖管理被正确安装到主工程,此跳转即可正常工作。

回到顶部