相关问题
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
234浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
208浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
251浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
336浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
220浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
307浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
198浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?
303浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中动态下载并注册自定义字体?
209浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中自定义视频控制器?
267浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
313浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中定义自定义转场动画?
259浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
260浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
296浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中应用BuilderNode创建自定义控件树?
312浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
226浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙导航组件中实现跨包动态路由?
274浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现动态路由?
250浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义焦点框样式?
257浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?
259浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙的ArkTS中创建自定义Sendable类?
280浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义Swiper组件的切换动画?
320浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
200浏览 • 1回复 待解决
如何在鸿蒙应用中创建自定义的组件?
344浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义图片布局的列数?
247浏览 • 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展示时使用。