HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转

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

HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转 通过har方式模块化开发时,页面之间如何跳转。主模块如何使用 router.pushUrl 路由到子模块的页面

2 回复

如果想在模块A跳转模块B的某个页面,可以通过router.pushUrl({url: "xxx"})

url路径需要按照以下格式拼接:

@bundle:包名(bundleName)/模块名(moduleName)/页面相对路径(以main文件夹为起点)

例如:

@bundle:com.xxx.xxx/debug/ets/pages/Index

上面方法是hsp包跳转方式,跳转的页面需要是在模块B中main_pages.json的页面。

har包的跳转方式为:

import("@ohos/har/src/main/ets/components/mainpage/MainPage") // 引入共享包中的命名路由页面
Button("router to har")
.onClick(() => { // 点击跳转到其他共享包中的页面
    console.info("22")
    router.pushNamedRoute({
        name: 'myPage',
    })
// router.pushUrl({ url: '@bundle:com.example.router_har/hsp/ets/pages/Index' })
})

A模块中oh-package.json文件下引入har包:

"dependencies": {
    "@ohos/har": "../har"
}

B模块:

@Entry({ routeName: 'myPage' })
@Component
export struct MainPage {
    @State message: string = "har包页面";
    build() {
        Row() {
            Column() {
                Text(this.message)
                    .fontSize(50)
                    .fontWeight(FontWeight.Bold)
            }
        }
        .width('100%')
    }
}

可参考文档: 页面路由跳转

更多关于HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next模块化开发中,页面之间的跳转主要通过Intent机制实现。Intent是一种消息传递机制,允许不同组件之间进行通信和数据传递。

具体来说,你可以使用Intent类来创建一个意图,然后通过startAbility方法启动目标页面(Ability)。以下是基本步骤:

  1. 创建Intent:使用new Intent()来创建一个新的Intent对象。

  2. 设置目标页面:通过IntentsetElementsetPackage等方法设置目标页面的信息,包括包名和Ability名称。

  3. 启动目标页面:使用当前页面的startAbility方法,并传入创建好的Intent对象,即可跳转到目标页面。

例如:

Intent intent = new Intent();
// 假设目标页面的包名为com.example.myapp,Ability名称为MyAbility
ElementName element = new ElementName("com.example.myapp", "MyAbility");
intent.setElement(element);
startAbility(intent);

请注意,上述代码示例中的注释是为了说明目的,实际代码中应替换为真实的包名和Ability名称。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部