【HarmonyOS 5】使用openCustomDialog如何禁止手势关闭的方案
在 HarmonyOS 5 中禁止openCustomDialog通过手势关闭核心方案是使用onWillDismiss回调拦截关闭事件。结合autoCancel: false可以覆盖大部分关闭场景。下面是具体的实现方案和代码示例。核心方案使用 onWillDismiss 拦截onWillDismiss是openCustomDialog提供的关闭前回调钩子。当用户尝试通过手势如侧滑返回、返回键或点击外部遮障关闭弹窗时该回调会被触发。你可以在回调中根据DismissReason枚举值判断关闭原因并决定是否阻止关闭。关键配置说明配置项作用推荐值autoCancel控制是否允许点击弹窗外的遮障层Mask来关闭弹窗。false(直接禁用外部点击关闭)onWillDismiss关闭前的拦截钩子。通过判断DismissReason来阻止特定操作。根据dismissAction.reason返回false以阻止关闭DismissReason关键枚举值PRESS_BACK返回键、侧滑手势、ESC键触发的关闭。TOUCH_OUTSIDE点击弹窗外部遮障触发的关闭即使autoCancel为false此事件依然会触发可用于额外逻辑处理。CLOSE_BUTTON点击弹窗内关闭按钮触发的关闭。完整代码示例tsimport { PromptAction, DismissReason } from ohos.prompt; import { BusinessError } from kit.BasicServicesKit; Entry Component struct DialogDemo { private promptAction: PromptAction this.getUIContext().getPromptAction(); private dialogId: number 0; build() { Column({ space: 20 }) { Button(打开弹窗) .onClick(() this.showDialog()) } .width(100%) .height(100%) .justifyContent(FlexAlign.Center) } showDialog() { this.promptAction.openCustomDialog({ builder: () this.CustomDialogContent(), alignment: DialogAlignment.Center, maskColor: rgba(0, 0, 0, 0.3), // 1. 禁止点击外部遮障关闭 autoCancel: false, // 2. 核心拦截手势和返回键关闭 onWillDismiss: (dismissAction) { console.info(关闭原因: ${dismissAction.reason}); // 仅允许通过自定义按钮关闭即 DismissReason 为 CLOSE_BUTTON 或其他自定义逻辑 // 若想禁止所有手势/返回键可将条件判断改为直接返回 false if (dismissAction.reason DismissReason.PRESS_BACK || dismissAction.reason DismissReason.TOUCH_OUTSIDE) { // 阻止关闭返回 false return false; } // 其他情况允许关闭 return true; } }).then((id: number) { this.dialogId id; }).catch((err: BusinessError) { console.error(open dialog failed: ${err.message}); }); } Builder CustomDialogContent() { Column({ space: 20 }) { Text(禁止手势关闭的弹窗) .fontSize(24) .fontWeight(FontWeight.Bold) Button(确认关闭 (主动关闭)) .onClick(() { // 主动关闭弹窗不会触发 onWillDismiss this.promptAction.closeCustomDialog(this.dialogId); }) } .padding(30) .backgroundColor(Color.White) .borderRadius(16) .width(80%) } }进阶与限制页面级拦截如果你想在弹窗显示时让页面也能响应返回事件例如同时关闭弹窗和页面可以在onWillDismiss中检测到手势后先主动关闭弹窗再执行router.back()等页面返回操作。已知限制根据华为官方反馈和开发者社区信息在 HarmonyOS Next 当前版本中部分系统级别的侧滑返回手势可能无法被完全屏蔽。未来版本可能会开放更底层的禁用选项。如果需要完全控制建议结合页面级的onBackPress生命周期进行综合治理。

相关新闻

Kimera-Semantics 性能优化:fast vs merged 方法的详细对比与选择指南

Kimera-Semantics 性能优化:fast vs merged 方法的详细对比与选择指南

Kimera-Semantics 性能优化:fast vs merged 方法的详细对比与选择指南 【免费下载链接】Kimera-Semantics Real-Time 3D Semantic Reconstruction from 2D data 项目地址: https://gitcode.com/gh_mirrors/ki/Kimera-Semantics Kimera-Semantics 是一款强大的…

2026/10/12 21:58:06 阅读更多 →
GameplayEffect完全解读:EX-GAS中的Buff/Debuff系统实现原理

GameplayEffect完全解读:EX-GAS中的Buff/Debuff系统实现原理

GameplayEffect完全解读:EX-GAS中的Buff/Debuff系统实现原理 【免费下载链接】gameplay-ability-system-for-unity Gameplay-Ability-System For Unity 项目地址: https://gitcode.com/gh_mirrors/ga/gameplay-ability-system-for-unity 在Unity游戏开发中&a…

2026/10/8 22:53:45 阅读更多 →
【HarmonyOS NEXT】使用AVPlayer播放音乐,导致系统其它应用音乐播放暂停 - 播放音频焦点管理

【HarmonyOS NEXT】使用AVPlayer播放音乐,导致系统其它应用音乐播放暂停 - 播放音频焦点管理

HarmonyOS NEXT 的 AVPlayer 会打断其他应用播放,根本原因在于系统默认的音频焦点策略是后来者优先:你的应用启动播放时,系统会先暂停其他应用的音频,再将焦点交给你。解决方案的核心是根据你的业务场景选择合适的音频焦点策略。&…

2026/10/12 20:36:23 阅读更多 →

最新新闻

基于Springboot城乡居民医疗管理系统【附源码+文档】

基于Springboot城乡居民医疗管理系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java[毕][设] 。ssm,springboot,vue等项目&#…

2026/10/15 2:42:26 阅读更多 →
Matlab实现氢能综合能源系统优化调度模型

Matlab实现氢能综合能源系统优化调度模型

1. 项目背景与核心价值氢能作为清洁能源的重要载体,正在重塑综合能源系统的运行方式。这项研究通过Matlab实现了计及氢能的综合能源系统优化调度模型,为多能互补系统提供了量化分析工具。我在参与某工业园区微电网项目时,深刻体会到传统能源调…

2026/10/15 2:42:26 阅读更多 →
淘宝上新一套图要做 4 张,我实测了 4 个 AI 套图工具

淘宝上新一套图要做 4 张,我实测了 4 个 AI 套图工具

淘宝上新一个品,标配一套图:主图、白底图、细节图、场景图,至少 4 张。传统流程是拍完一张张修,4 张图半天没了。我拿 4 个 AI 工具实测了"一套图"这个场景。一、51AI:上传商品图,一键生成整套电…

2026/10/15 2:42:26 阅读更多 →
家庭住宅IP是什么?与机房IP、普通住宅代理有什么区别?

家庭住宅IP是什么?与机房IP、普通住宅代理有什么区别?

在跨境电商管理、海外社媒运营以及大规模数据采集的实际操作中,网络连接的“风控”与“被封禁”往往是困扰运营人员最大的难题。很多时候,账号被限制或数据爬取失败,根源不在于操作本身,而在于你所使用的 IP 地址类型。了解不同 I…

2026/10/15 2:42:26 阅读更多 →
指纹浏览器怎么使用?从创建浏览器配置到团队协作的完整教程

指纹浏览器怎么使用?从创建浏览器配置到团队协作的完整教程

管理多个电商店铺、社媒账号或广告账户时,平台总能判定“关联”,团队协作时账号密码传来传去也不安全。指纹浏览器能为每个浏览器配置文件保存独立的浏览环境,包括 Cookie、本地存储和浏览器指纹,让不同账号在同一台电脑上完全隔离…

2026/10/15 2:42:26 阅读更多 →
H3 工具集(H3 Utils)实战导读:在可组合 HTTP 框架里接住数据、守住边界

H3 工具集(H3 Utils)实战导读:在可组合 HTTP 框架里接住数据、守住边界

H3 工具集(H3 Utils)实战导读:在可组合 HTTP 框架里接住数据、守住边界 【免费下载链接】h3 ⚡️ Minimal H(TTP) framework built for high performance and portability 项目地址: https://gitcode.com/GitHub_Trending/h31/h3 假设…

2026/10/15 2:41:26 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →