HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码

HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码

介绍

本示例提供promptAction全局弹窗,主要功能是创建,拦截监听,设置弹窗样式、弹出动画。

基于promptAction实现全局弹窗源码链接

效果预览

图片名称

使用说明

  • 创建自定义弹窗
  • 弹窗拦截并监听事件
  • 自定义弹窗动画1,渐隐渐显
  • 自定义弹窗动画2,底部升起,下落消失,左进右出。

实现思路

  1. 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见UIContext说明。建议在无UI界面的场景外,均使用UIContext中的弹窗方法。通过使用UIContext中的getPromptAction方法获取当前UI上下文关联的PromptAction对象。设置CustomDialogOptions自定义弹窗内容,可以设置弹窗对齐方式、相对位置,模态、遮蔽层、回调以及过渡效果。

  2. onWillDismiss交互式关闭回调函数。当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。本示例设置阻拦点击遮罩层关闭弹窗操作,左右滑back依然可以退出。

  3. transition属性设置弹窗显示和退出的过渡效果。如果不设置,则使用默认的显示/退出动效,即为渐隐渐显。


更多关于HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

关注

更多关于HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS NEXT中,使用promptAction实现全局弹窗的示例如下:

import promptAction from '@ohos.promptAction';

// 显示普通弹窗
promptAction.showToast({
  message: "操作成功",
  duration: 2000
});

// 显示对话框
promptAction.showDialog({
  title: "提示",
  message: "确认删除?",
  buttons: [
    {text: "取消", color: "#666666"},
    {text: "确定", color: "#0A59F7"}
  ]
}).then((result) => {
  if (result.index === 1) {
    // 确定按钮逻辑
  }
});

该API支持toast和dialog两种样式,可通过配置参数自定义内容和样式。

这是一个很好的HarmonyOS NEXT中promptAction全局弹窗的实现示例。我来简要分析几个关键点:

  1. 获取UIContext和PromptAction对象是核心步骤,确保弹窗在正确的UI上下文中显示。示例中通过getUIContext()和getPromptAction()方法实现。

  2. CustomDialogOptions提供了丰富的配置选项:

  • keyboardAvoidMode控制键盘弹出时的行为
  • alignment设置弹窗对齐方式
  • offset调整弹窗位置
  • transition自定义动画效果
  1. 拦截关闭功能很实用,通过onWillDismiss回调可以控制不同关闭方式的处理逻辑。示例中拦截了点击遮罩层的关闭操作。

  2. 动画效果实现得很完整:

  • 默认的渐隐渐显效果
  • 使用TransitionEffect实现自定义动画(如示例中的左右滑动效果)
  • 可以设置动画持续时间等参数

代码结构清晰,错误处理也很完善,捕获了BusinessError并获取错误信息。这个示例很好地展示了HarmonyOS NEXT中promptAction弹窗的主要功能和用法。

回到顶部