HarmonyOS CustomDialog不支持拦截backpressed事件?

有些场景是要提醒用户必须在dialog里做选择,不能随便退出dialog,因此需要拦截back事件,不能让用户点击back键退出dialog

阅读 546
1 个回答

可以使用onWillDismiss交互式关闭回调函数,在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。

参考代码:

onWillDismiss:(dismissDialogAction: DismissDialogAction)=> {
  console.info("reason=" + JSON.stringify(dismissDialogAction.reason))
  console.log("dialog onWillDismiss")
  if (dismissDialogAction.reason == DismissReason.PRESS_BACK) {

  }
  if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) {
    dismissDialogAction.dismiss()
  }
}

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5\#ZH-CN\_TOPIC\_0000001884757950\_\_customdialogcontrolleroptions

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进