相关问题
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
37浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
49浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
62浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
95浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
50浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
40浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?
113浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中自定义视频控制器?
48浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
65浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
57浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
68浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
30浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中定义自定义转场动画?
75浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
85浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中应用BuilderNode创建自定义控件树?
105浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙导航组件中实现跨包动态路由?
64浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现动态路由?
43浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?
106浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义焦点框样式?
91浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙OS中对绘制组件自定义样式?
37浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义Swiper组件的切换动画?
49浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
25浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中为RenderNode自定义绘制内容?
85浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中实现H5页面调用自定义输入法?
72浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中利用Native XComponent创建自定义绘制内容?
37浏览 • 1回复 待解决
如果在开发鸿蒙应用中需要根据不同来源页展示不同的UI,用自定义路由栈是个不错的解决方案。实现步骤如下:
typescript export class DynamicsRouter { static routerStack: Array<RouterModel> = new Array(); static referrer: string[] = []; }
typescript public static async push(router: RouterModel): Promise<void> { DynamicsRouter.getRouter().pushPath({ name: router.routerName, param: router.param }); DynamicsRouter.routerStack.push(router); let referrerModel: RouterModel = DynamicsRouter.routerStack[DynamicsRouter.routerStack.length - 2]; DynamicsRouter.referrer[0] = referrerModel.routerName; DynamicsRouter.referrer[1] = referrerModel.path; }
typescript public static pop(): void { let referrerModel: RouterModel = DynamicsRouter.routerStack[DynamicsRouter.routerStack.length - 1]; DynamicsRouter.referrer[0] = referrerModel.routerName; DynamicsRouter.referrer[1] = referrerModel.path; if (DynamicsRouter.routerStack.length > 1) { DynamicsRouter.routerStack.pop(); } DynamicsRouter.getRouter().pop(); }
通过以上步骤,在页面返回时,
DynamicsRouter.referrer
可以保存来源页的信息,方便在UI展示时使用。