相关问题
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
323浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
196浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中创建一个自定义弹窗?
322浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
313浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
198浏览 • 1回复 待解决
HarmonyOS 路由跳转时自定义弹窗遮挡页面
737浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中实现模态弹窗?
331浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
251浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
291浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中实现支持切换页面不消失的自定义弹窗?
266浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中记录自定义动态路由栈来源页?
274浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中进行自定义事件拦截?
292浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现Navigation的路由跳转?
242浏览 • 1回复 待解决
HarmonyOS 自定义弹窗路由跳转,弹窗如何自动隐藏
36浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
216浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义页面请求响应?
207浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
232浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的交互功能?
332浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的动画效果?
372浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS Next中创建多个页面并实现页面之间的路由跳转?
285浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT项目中实现页面的路由跳转?
278浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?
303浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS的H5页面中实现自定义输入法弹窗?
249浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
208浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用openCustomDialog在鸿蒙中创建自定义弹窗?
235浏览 • 1回复 待解决
在鸿蒙ArkUI中,当需要在自定义弹窗中进行页面路由跳转,可以通过在
CustomDialog
内部使用路由API实现:在自定义弹窗内处理路由跳转: javascript @CustomDialog struct CustomDialogExample { @Link textValue: string; controller?: CustomDialogController; cancel: () => void = () => { }; confirm: () => void = () => { };
build() { Column({ space: 20 }) { if (this.textValue != '') { Text(
第二个页面的内容为:${this.textValue}
).fontSize(20); } else { Text('是否获取第二个页面的内容').fontSize(20); } Flex({ justifyContent: FlexAlign.SpaceAround }) { Button('cancel') .onClick(() => { if (this.controller != undefined) { this.controller.close(); this.cancel(); } }).backgroundColor(0xffffff).fontColor(Color.Black); Button('confirm') .onClick(() => { if (this.controller != undefined && this.textValue != '') { this.controller.close(); } else if (this.controller != undefined) { this.getUIContext().getRouter().pushUrl({ url: 'pages/Index2' }); this.controller.close(); } }).backgroundColor(0xffffff).fontColor(Color.Red); }.margin({ bottom: 10 }); }.borderRadius(10).padding({ top: 20 }); } }在主页面组件内获取并处理传递的参数: javascript @Entry @Component struct CustomDialogUser { @State textValue: string = ''; dialogController: CustomDialogController | null = new CustomDialogController({ builder: CustomDialogExample({ cancel: () => { this.onCancel(); }, confirm: () => { this.onAccept(); }, textValue: $textValue, }) });
onPageShow() { const params = this.getUIContext().getRouter().getParams() as Record<string, string>; if (params) { this.dialogController?.open(); this.textValue = params.info as string; } }
build() { Column() { Button('click me') .onClick(() => { if (this.dialogController != null) { this.dialogController.open(); } }).backgroundColor(0x317aff); }.width('100%').margin({ top: 5 }); } }