相关问题
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
62浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
36浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中记录自定义动态路由栈来源页?
59浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
45浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
33浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
95浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何通过模块名和页面名实现动态页面加载?
57浏览 • 1回复 待解决
#鸿蒙通关秘籍#Tabs组件中如何实现自定义页面切换动画?
74浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何查询当前自定义组件的页面信息?
46浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何关闭或者自定义页面转场动画?
73浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现可变内容的自定义组件?
96浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
29浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为应用配置自定义进程名?
72浏览 • 1回复 待解决
HarmonyOS 路由跳转时自定义弹窗遮挡页面
496浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现使用NodeController管理自定义节点的生命周期?
83浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
74浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
65浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义按钮的样式?
62浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
53浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用动态路由实现模块之间的解耦?
96浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现拖拽操作中的自定义操作显示?
73浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用Router模块实现鸿蒙页面跳转?
51浏览 • 1回复 待解决
自定义路由表的实现方法
431浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何限制页面栈中的页面数量?
25浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中的Router自定义转场动画怎么实现?
52浏览 • 1回复 待解决
要在鸿蒙应用中获取返回时的来源页面模块名,需要自己管理一个路由栈。可以通过以下方式实现:
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
获取来源页面模块名和路径名。