HarmonyOS 鸿蒙Next router 跨模块切换页面如何跳转

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

HarmonyOS 鸿蒙Next router 跨模块切换页面如何跳转 JS UI 中,router 切换页面都是本模块切换,现有2个模块,A模块和B模块,如何能从A模块切换到B模块的界面呢?

7 回复

楼主你好,前端框架用的是JS UI框架:

模块A:

  • pages/page1/page1(模块A的首页面),
  • pages/page1/page2,
  • pages/page1/page3,

模块B:

  • pages/page4/page4(模块B的首页面),
  • pages/page5/page5,
  • pages/page6/page6,

从模块A的page1页面跳转至模块B的page4页面,可以用以下2种方式实现:

1、先从前端调到后端,在后端那里跳转,代码大概如下:

Intent intent = new Intent();
Operation operation = new Intent.OperationBuilder()
    .withDeviceId("")
    .withBundleName(SystemConstant.BUNDLE_NAME)
    .withAbilityName(abilityName)
    .build();
intent.setOperation(operation);
context.startAbility(intent, 0);

2、直接通过模块A的前端跳转到模块B的前端,代码大概如下:

let reqParam = {
    bundleName: 'com.xxx.xxx',
    abilityName: 'com.xxx.moudleB',
};
await FeatureAbility.startAbility(reqParam);

这2种方式都能实现跨模块的页面跳转

更多关于HarmonyOS 鸿蒙Next router 跨模块切换页面如何跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


A模块JS页面里通过FeatureAbility的startAbility方法启动B模块的Ability,在B模块的Ability里用setInstanceName绑定要显示的JS页面(默认页面就不用了)。

B 模块没有设置Ability

那就弄一个呗,新建一个AceAbility

既然B模块带有界面,就应该有Ability。新建模块时会要求选择模板,只要不是Library,都会创建Ability(JS框架是AceAbility)。

欢迎开发小伙伴们进来帮帮楼主

在HarmonyOS(鸿蒙)系统中,Next router 跨模块页面跳转通常依赖于ArkUI框架提供的路由机制。以下是一个简要的实现方式:

鸿蒙系统支持使用@Entry注解的页面组件作为路由的终点。要实现跨模块跳转,首先需要在目标模块中定义一个带有@Entry注解的页面组件。例如:

// TargetPage.ets
[@Entry](/user/Entry)
@Component
struct TargetPage {
    build() {
        Column() {
            Text('This is the target page.')
        }
    }
}

然后,在源模块中,可以使用系统提供的路由API进行页面跳转。假设你使用的是ArkUI的JS框架,可以通过router.push方法来实现:

// SourcePage.ets
[@Entry](/user/Entry)
@Component
struct SourcePage {
    @State private buttonText: string = 'Go to Target Page';

    navigateToTargetPage() {
        router.push({
            uri: 'targetmodule://TargetPage'  // 假设'targetmodule'是目标模块的包名,'TargetPage'是目标页面的路由名
        });
    }

    build() {
        Button(this.buttonText)
            .onClick(() => this.navigateToTargetPage());
    }
}

注意,这里的uri需要根据你的项目实际情况来填写,确保它正确地指向了目标模块和页面。

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

回到顶部