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

HarmonyOS
1天前
浏览
收藏 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);
    }
    
  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);
        }
    }
    
  3. 在需要跳转的处,调用DynamicsRouter.pushUri方法进行跳转。

    .onClick(() => {
        DynamicsRouter.pushUri(this.listData.appUri);
    })
    
分享
微博
QQ
微信
回复
1天前
相关问题
如何实现路由动态跳转
337浏览 • 1回复 待解决
路由实现动态页面的跳转方案
1767浏览 • 1回复 待解决