HarmonyOS 如何封装全局性的弹窗?最佳实践是什么?

  1. 封装公共的弹窗的最佳方式是什么?
  2. 如何在非UI组件中使用弹窗?
阅读 603
1 个回答

如果想封装一个弹窗,可以全局使用的话,可以使用 promptAction 封装一个自定义弹窗

相关参考文档:可以参考 promptAction.openCustomDialog 部分的示例代码https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-V5\#promptactionopencustomdialog11

简要代码:

let customDialogId: number = 0

export function showCustomDialog() {
  let result: CustomDialogController = new CustomDialogController({
    builder: SimpleDialog({}),
    alignment: DialogAlignment.Bottom,
    customStyle: true,
    offset: {
      dx: 0,
      dy: CommonConstants.DY_OFFSET
    }
  })
  result.open()
}

...

onClick: () => {
  promptAction.openCustomDialog({
    builder: showCustomDialog.bind(this)
  }).then((dialogId: number) => {
    customDialogId = dialogId;
  })
}

//确认/取消弹窗
promptAction.closeCustomDialog(customDialogId)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进