相关问题
#鸿蒙通关秘籍#如何在鸿蒙应用中记录自定义动态路由栈来源页?
275浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
254浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
234浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
220浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
307浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
336浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为应用配置自定义进程名?
228浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
231浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何通过模块名和页面名实现动态页面加载?
229浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
201浏览 • 1回复 待解决
#鸿蒙通关秘籍#Tabs组件中如何实现自定义页面切换动画?
390浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理自定义安全键盘的按键事件?
341浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义渲染组件XComponent的生命周期管理?
335浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过动态路由实现页面的动态加载与模块化?
339浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现自定义切换动画?
318浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过BaseNavigation实现自定义导航栏
266浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
298浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中实现ArkTS自定义组件的属性传递和状态管理?
229浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现可变内容的自定义组件?
283浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义安全键盘的布局?
252浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的动画效果?
378浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的交互功能?
334浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何关闭或者自定义页面转场动画?
294浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何查询当前自定义组件的页面信息?
423浏览 • 1回复 待解决
自定义路由表的实现方法
527浏览 • 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
获取来源页面模块名和路径名。