相关问题
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
1084浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中记录自定义动态路由栈来源页?
1552浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
1106浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
1144浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
1527浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
1776浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为应用配置自定义进程名?
1279浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
1256浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何通过模块名和页面名实现动态页面加载?
1135浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
989浏览 • 1回复 待解决
#鸿蒙通关秘籍#Tabs组件中如何实现自定义页面切换动画?
2221浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理自定义安全键盘的按键事件?
1713浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义渲染组件XComponent的生命周期管理?
1720浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的交互功能?
1272浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的动画效果?
1437浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义安全键盘的布局?
1427浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现可变内容的自定义组件?
1237浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
1876浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何关闭或者自定义页面转场动画?
1529浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何查询当前自定义组件的页面信息?
1416浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过动态路由实现页面的动态加载与模块化?
1495浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现自定义切换动画?
1480浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过BaseNavigation实现自定义导航栏
1158浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙动画样式?
1201浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中实现ArkTS自定义组件的属性传递和状态管理?
1157浏览 • 0回复 待解决





















要在鸿蒙应用中获取返回时的来源页面模块名,需要自己管理一个路由栈。可以通过以下方式实现:
typescript export class DynamicsRouter { static routerStack: Array<RouterModel> = new Array(); static referrer: string[] = []; }
typescript public static createRouter(router: NavPathStack): void { DynamicsRouter.navPathStack = router; let homeRouterModule = new RouterModel(); homeRouterModule.routerName = RouterInfo.HOME_PAGE[0]; homeRouterModule.path = RouterInfo.HOME_PAGE[1]; DynamicsRouter.routerStack.push(homeRouterModule); }
typescript public static async push(router: RouterModel): Promise<void> { const path: string = router.path; const routerName: string = router.routerName; let param: string = router.param; await import(routerName).then( (ns: ESObject) => ns.harInit(path) ); DynamicsRouter.getRouter().pushPath({ name: routerName, param: param }); DynamicsRouter.routerStack.push(router); let referrerModel: RouterModel = DynamicsRouter.routerStack[DynamicsRouter.routerStack.length - 2]; DynamicsRouter.referrer[0] = referrerModel.routerName; DynamicsRouter.referrer[1] = referrerModel.path; }
通过以上步骤,在返回过程中便可通过
DynamicsRouter.referrer获取来源页面模块名和路径名。