相关问题
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
989浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
886浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
1011浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
1519浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
1061浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
1407浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
926浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?
1296浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中动态下载并注册自定义字体?
790浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中自定义视频控制器?
1049浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中定义自定义转场动画?
1013浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
1261浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中应用BuilderNode创建自定义控件树?
1095浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
1461浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
1669浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
1249浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙导航组件中实现跨包动态路由?
1186浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现动态路由?
1192浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义焦点框样式?
961浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?
1214浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙的ArkTS中创建自定义Sendable类?
1190浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
1207浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义Swiper组件的切换动画?
1512浏览 • 1回复 待解决
如何在鸿蒙应用中创建自定义的组件?
1691浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙OS中对绘制组件自定义样式?
1087浏览 • 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展示时使用。