#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?

HarmonyOS
2024-12-03 10:45:36
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
樱花语FTP

实现动态路由跳转需要在应用中做好一系列配置,以下是具体步骤:

  1. 初始化动态路由,创建基础配置,注册动态路由。

    public static routerInit(config: RouterConfig, context: Context) {
       DynamicsRouter.config = config;
       DynamicsRouter.appRouterStack.push(HOME_PAGE);
       RouterLoader.load(config.mapPath, DynamicsRouter.routerMap, context);
    }
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
  2. 利用DynamicsRouter's接口方法pushUri来实现页面跳转,通过动态加载模块进行页面展示。

    public static pushUri(name: string, param?: Object) {
        if (!DynamicsRouter.routerMap.has(name)) {
            return;
        }
        let routerInfo: AppRouterInfo = DynamicsRouter.routerMap.get(name)!;
        if (!DynamicsRouter.builderMap.has(name)) {
            import(`${DynamicsRouter.config.libPrefix}/${routerInfo.pageModule}`)
              .then((module: ESObject) => {
                module[routerInfo.registerFunction!](routerInfo);
                DynamicsRouter.navPathStack.pushPath({ name: name, param: param });
            })
              .catch((error: BusinessError) => {
                logger.error(`promise import module failed, error code:${error.code}, message:${error.message}`);
            });
        } else {
            DynamicsRouter.navPathStack.pushPath({ name: name, param: param });
            DynamicsRouter.pushRouterStack(routerInfo);
        }
    }
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 13.
    • 14.
    • 15.
    • 16.
    • 17.
    • 18.
    • 19.
  3. 在需要跳转的处,调用DynamicsRouter.pushUri方法进行跳转。

    .onClick(() => {
        DynamicsRouter.pushUri(this.listData.appUri);
    })
    
    • 1.
    • 2.
    • 3.
分享
微博
QQ
微信
回复
2024-12-03 13:21:46


相关问题
如何实现路由动态跳转
822浏览 • 1回复 待解决