可以使用 onWillDismiss方法:当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。可参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5\#ZH-CN\_TOPIC\_0000001847211028\_\_customdialogcontrolleroptions对象说明参考代码如下dialogController: CustomDialogController | null = new CustomDialogController({ builder: CustomDialogExample(), cancel: this.exitApp, autoCancel: true, alignment: DialogAlignment.Bottom, onWillDismiss:(dismissDialogAction: DismissDialogAction)=> { console.info("reason=" + JSON.stringify(dismissDialogAction.reason)) if (dismissDialogAction.reason == DismissReason.PRESS_BACK) { return } }, offset: { dx: 0, dy: -20 }, gridCount: 4, customStyle: false, cornerRadius: 10, })
可以使用 onWillDismiss方法:当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。
在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。
可参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5\#ZH-CN\_TOPIC\_0000001847211028\_\_customdialogcontrolleroptions对象说明
参考代码如下