HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码
HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码
介绍
本示例提供promptAction全局弹窗,主要功能是创建,拦截监听,设置弹窗样式、弹出动画。
效果预览
使用说明
- 创建自定义弹窗
- 弹窗拦截并监听事件
- 自定义弹窗动画1,渐隐渐显
- 自定义弹窗动画2,底部升起,下落消失,左进右出。
实现思路
-
本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见UIContext说明。建议在无UI界面的场景外,均使用UIContext中的弹窗方法。通过使用UIContext中的getPromptAction方法获取当前UI上下文关联的PromptAction对象。设置CustomDialogOptions自定义弹窗内容,可以设置弹窗对齐方式、相对位置,模态、遮蔽层、回调以及过渡效果。
-
onWillDismiss交互式关闭回调函数。当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。本示例设置阻拦点击遮罩层关闭弹窗操作,左右滑back依然可以退出。
-
transition属性设置弹窗显示和退出的过渡效果。如果不设置,则使用默认的显示/退出动效,即为渐隐渐显。
更多关于HarmonyOS鸿蒙NEXT中基于promptAction实现全局弹窗示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
关注
更多关于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全局弹窗的实现示例。我来简要分析几个关键点:
-
获取UIContext和PromptAction对象是核心步骤,确保弹窗在正确的UI上下文中显示。示例中通过getUIContext()和getPromptAction()方法实现。
-
CustomDialogOptions提供了丰富的配置选项:
- keyboardAvoidMode控制键盘弹出时的行为
- alignment设置弹窗对齐方式
- offset调整弹窗位置
- transition自定义动画效果
-
拦截关闭功能很实用,通过onWillDismiss回调可以控制不同关闭方式的处理逻辑。示例中拦截了点击遮罩层的关闭操作。
-
动画效果实现得很完整:
- 默认的渐隐渐显效果
- 使用TransitionEffect实现自定义动画(如示例中的左右滑动效果)
- 可以设置动画持续时间等参数
代码结构清晰,错误处理也很完善,捕获了BusinessError并获取错误信息。这个示例很好地展示了HarmonyOS NEXT中promptAction弹窗的主要功能和用法。