【鸿蒙 HarmonyOS】@ohos.promptAction (弹窗)

一、背景

创建并显示文本提示框、对话框和操作菜单。

文档地址👉:文档中心

说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

该模块不支持在UIAbility的文件声明处使用,即不能在UIAbility的生命周期中调用,需要在创建组件实例后使用。

本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见UIContext说明。

从API version 10开始,可以通过使用UIContext中的getPromptAction方法获取当前UI上下文关联的PromptAction对象。

二、 导入模块

javascript 复制代码
import promptAction from '@ohos.promptAction';

三、实现方式

3.1、创建并显示文本提示框

代码示例:

javascript 复制代码
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct PromptPage {

  build() {
    Column() {
      Button('显示一个toast').margin({top:100})
        .onClick(()=>{
          promptAction.showToast({
            message: '文本提示框',
            duration: 2000,
            bottom:200
          })
        })
    }
    .width('100%')
    .height('100%')
  }
}

实现效果:

参数说明如下:

message: 显示的文本信息,必填项。
**duration:**Toast 显示时间,单位毫秒,范围 [1500, 10000],默认1500。

**bottom:**设置弹窗边框距离屏幕底部的位置。默认值:80vp

3.2、创建并显示对话框

3.2.1、promptAction.showDialog同步

创建并显示对话框 ,对话框响应后同步返回结果

代码示例:

javascript 复制代码
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct PromptPage {

  build() {
    Column() {
      Button('显示一个Dialog').margin({top:100})
        .onClick(()=>{
          promptAction.showDialog({
            title:'标题',
            message:'内容-同步',
            buttons:[
              {
                text: "按钮一",
                color: "#333333"
              },
              {
                text: "按钮二",
                color: "#999999"
              }
            ]
          })
            .then(data=>{
              console.info('showDialog success, click button: ' + data.index);
            })
            .catch((err:Error)=>{
              console.info('showDialog error: ' + err);
            })
        })
    }
    .width('100%')
    .height('100%')
  }
}

实现效果:

3.2.2、promptAction.showDialog异步

创建并显示对话框 ,对话框响应结果异步返回

代码示例:

javascript 复制代码
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct PromptPage {

  build() {
    Column() {
      Button('显示一个Dialog').margin({top:100})
        .onClick(()=>{
          promptAction.showDialog({
            title:'标题',
            message:'内容-异步',
            buttons:[
              {
                text: "按钮一",
                color: "#333333"
              },
              {
                text: "按钮二",
                color: "#999999"
              }
            ]
          },(err,data)=>{
            if (err) {
              console.info('showDialog err: ' + err);
              return;
            }
            console.info('showDialog success callback, click button: ' + data.index);
          })
        })
    }
    .width('100%')
    .height('100%')
  }
}

实现效果:

参数说明如下:

title: 对话框标题文本。
message: 对话框内容文本。
**buttons:**对话框中按钮的数组,至少配置一个,最多三个

ShowDialogSuccessResponse

对话框的响应结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称 类型 必填 说明
index number 选中按钮在buttons数组中的索引。

3.3、创建并显示操作菜单

3.3.1、promptAction.showActionMenu异步

创建并显示操作菜单,菜单响应结果异步返回

代码示例:

javascript 复制代码
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct PromptPage {

  build() {
    Column() {
      Button('显示一个menu').margin({top:100})
        .onClick(()=>{
          promptAction.showActionMenu({
            title:'标题-异步',
            buttons:[
              {
                text: "按钮一",
                color: "#666666"
              },
              {
                text: "按钮二",
                color: "#000000"
              }
            ]
          },(err,data)=>{
            if (err) {
              console.info('showActionMenu err: ' + err);
              return;
            }
            console.info('showActionMenu success callback, click button: ' + data.index);
          })
        })
    }
    .width('100%')
    .height('100%')
  }
}

实现效果:

3.3.2、prompt.showActionMenu同步

创建并显示操作菜单,菜单响应后同步返回结果

代码示例:

javascript 复制代码
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct PromptPage {

  build() {
    Column() {
      Button('显示一个menu').margin({top:100})
        .onClick(()=>{
          promptAction.showActionMenu({
            title:'标题-同步',
            buttons:[
              {
                text: "按钮一",
                color: "#666666"
              },
              {
                text: "按钮二",
                color: "#000000"
              }
            ]
          })
            .then(data => {
              console.info('showActionMenu success, click button: ' + data.index);
            })
            .catch((err:Error) => {
              console.info('showActionMenu error: ' + err);
            })
        })
    }
    .width('100%')
    .height('100%')
  }
}

实现效果:

参数说明如下:

title: Menu 的显示标题。
buttons: Menu 显示的按钮数组,至少 1 个按钮,至多 6 个按钮。

ActionMenuSuccessResponse

操作菜单的响应结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称 类型 必填 说明
index number 选中按钮在buttons数组中的索引,从0开始。

Button

菜单中的菜单项按钮。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称 类型 必填 说明
text string| Resource9+ 按钮文本内容。
color string| Resource9+ 按钮文本颜色。

**最后:**👏👏😊😊😊👍👍

相关推荐
猫头虎8 小时前
Paper2Agent:将科研论文转化为可交互的AI智能体工具项目
人工智能·prompt·aigc·交互·pip·agi·ai-native
声网10 小时前
阿里发布「夸克 AI 眼镜」:融合阿里购物、地图、支付生态;苹果拟收购计算机视觉初创 Prompt AI丨日报
人工智能·计算机视觉·prompt
Wade_Crab1 天前
第二章:动态 Prompt 管理与多科室智能问答系统
人工智能·spring·prompt
Fuly10243 天前
prompt构建技巧
人工智能·prompt
为java加瓦3 天前
前端学AI:如何写好提示词(prompt)
前端·人工智能·prompt
猫头虎4 天前
HAMi 2.7.0 发布:全面拓展异构芯片支持,优化GPU资源调度与智能管理
嵌入式硬件·算法·prompt·aigc·embedding·gpu算力·ai-native
realhuizhu5 天前
📚 技术人的阅读提效神器:多语言智能中文摘要生成指令
人工智能·ai·chatgpt·prompt·提示词·总结·deepseek·摘要
0x2116 天前
[论文阅读]PromptArmor: Simple yet Effective Prompt Injection Defenses
prompt
zzywxc7877 天前
AI 在金融、医疗、教育、制造业等领域都有广泛且深入的应用,以下是这些领域的一些落地案例
人工智能·金融·自动化·prompt·ai编程·xcode