HarmonyOS 关于router.pushNamedRoute还要引用对应的类这个问题。

关于router.pushNamedRoute还要引用对应的类有点疑问,我们的场景是服务器下发name,然后我们进行跳转,实际上我们不知道他会跳转到哪个页面所以就要都import一遍能跳转的页面,导致代码冗余,或者能不能实现这些引用的类都写在一个类里面,然后在外部只需要引用这一个类就OK呢?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

实现了一个全局路由工具类RouterUtil,它包含三种常用页面跳转类型:当前模块跳转,Har包页面跳转,Hsp包页面跳转。

样例代码如下:

import { router } from '@kit.ArkUI'
import { common } from '@kit.AbilityKit'

// 导入har包中的页面
import('library/Index');

class RouterUtil {
  routerTo(pageName: string) {
    switch (pageName) {
      case "HarPage":
      // 根据服务端下发的包名,确定需要跳转的har包页面
        router.pushNamedRoute({
          name: pageName
        })
        break
      case "CurHapPage":
      // 若为当前hap中的页面,可直接用pushUrl跳转
        router.pushUrl({
          url: `pages/${pageName}`
        })
        break
      case "HspPage":
      // 跳转对应Hsp页面
        let context = getContext() as common.UIAbilityContext
        router.pushUrl({
          url: `@bundle:${context.applicationInfo.name}/feature/ets/pages/${pageName}`
        })
        break
      default:
        break
    }
  }
}

let hspRouterUtil = new RouterUtil()
export default hspRouterUtil as RouterUtil


// 使用处 pages/Index.ets
import HspRouterUtil from '../common/util/RouterUtil'

@Entry
@Component
struct Index {

  build() {
    Column() {
      Text("router To HarPage")
        .fontSize(50)
        .margin({top: 20})
        .onClick(() => {
          HspRouterUtil.routerTo("HarPage")
        })

      Text("router To CurHapPage")
        .fontSize(50)
        .margin({top: 20})
        .onClick(() => {
          HspRouterUtil.routerTo("CurHapPage")
        })

      Text("router To HspPage")
        .fontSize(50)
        .margin({top: 20})
        .onClick(() => {
          HspRouterUtil.routerTo("HspPage")
        })
    }.width('100%').height('100%')
  }
}

对于Har包中的页面,需要开发者在对应Har包的\<harName>\Index.ets文件中注册需要导出的页面。
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 关于router.back问题咨询
460浏览 • 1回复 待解决
HarmonyOS pushNamedRoute 跳转到hsp问题
483浏览 • 1回复 待解决
HarmonyOS 关于router.back()
733浏览 • 1回复 待解决
安卓Transformation对应鸿蒙哪个?
4242浏览 • 1回复 待解决
关于在api8下ets开发引用xml图片问题
3270浏览 • 1回复 待解决
HarmonyOS router跳转问题
520浏览 • 2回复 待解决
HarmonyOS router 返回问题
353浏览 • 1回复 待解决
HarmonyOS资源引用问题
552浏览 • 1回复 待解决
HarmonyOS router路由路径问题
554浏览 • 1回复 待解决