{"_id":"@capacitor-ohos/dialog","_rev":"2-9488da563794abe7ba576b0e000ea595","name":"@capacitor-ohos/dialog","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.1":{"name":"@capacitor-ohos/dialog","version":"8.0.1","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/dialog@8.0.1","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-dialog/issues"},"dist":{"shasum":"f01d058d1744c8cbf68c7e4e5bf8ab29df15fe5f","tarball":"https://registry.npmjs.org/@capacitor-ohos/dialog/-/dialog-8.0.1.tgz","fileCount":10,"integrity":"sha512-ybehtECLVkNlCJGRPc+lcbYwfO5kFb1cU3EGIjNXQTFb1gFyLWS7SI9Nk83PcaJxOnnIALCnFiZuroy4Kb+K4w==","signatures":[{"sig":"MEYCIQCiFXg9qTB9vWy427z656d7QV0Xo4lvD73hnsjAj5kRqgIhAJIZkaqPRBAHIWEJtjcWlIqUi7U/e1X1cf7BgqO9/S39","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45273},"gitHead":"24788ca6b913ecf87831a62774cf5bcd6736243e","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/dialog","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-dialog","type":"git"},"_npmVersion":"10.5.1","description":"The Dialog API provides methods for triggering native dialog windows for alerts, confirmations, and input prompts.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dialog_8.0.1_1777543901955_0.030112068836881667","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@capacitor-ohos/dialog","version":"8.0.2","description":"The Dialog API provides methods for triggering native dialog windows for alerts, confirmations, and input prompts.","capacitor":{"id":"@capacitor/dialog","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-dialog"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-dialog/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/dialog@8.0.2","gitHead":"62b12a12b3c3dd6889598f68932a798964e2fff1","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-MzimR5kLJDnO8fJSXhDIID6hKyBTV/I5U0SNh2/9dtVAy3BwWiF9UaEkmpA7qvZPjH0BMJKIE3D6hkxobUKxmw==","shasum":"3494d60b2efba665819e42e8f15199adb0de15c1","tarball":"https://registry.npmjs.org/@capacitor-ohos/dialog/-/dialog-8.0.2.tgz","fileCount":10,"unpackedSize":45297,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDIR9PIdkEUooCwGBt9qRL2ij5nPshDobentKEq9qOaHAIgdP7Zdqu7x0lGdFi9zBkHA7wiE68KTWbhPwazCLNGxNE="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dialog_8.0.2_1784793820058_0.5501391995356504"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T10:11:41.777Z","modified":"2026-07-23T08:03:40.390Z","8.0.1":"2026-04-30T10:11:42.086Z","8.0.2":"2026-07-23T08:03:40.190Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-dialog/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-dialog"},"description":"The Dialog API provides methods for triggering native dialog windows for alerts, confirmations, and input prompts.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/dialog</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/dialog@8.0.0](https://www.npmjs.com/package/@capacitor/dialog/v/8.0.0) 开发。\r\n\r\n## 简介\r\n\r\n@capacitor/dialog是capacitor生态系统中的核心插件，提供了触发本地对话窗口的标准化方法，可实现警告弹窗、确认选择框、输入提示框三类核心交互场景。插件兼容Android、iOS原生平台特性，同时支持浏览器环境，本文档主要说明在OpenHarmony系统中使用。\r\n\r\nAPI提供了触发本地对话窗口的方法，用于显示警告、确认和输入提示。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/dialog\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/dialog\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中引入插件：\r\n\r\n#### 1. 添加插件配置\r\n\r\n根据 `plugin.xml` 的 `config-json` 项，通过 `target` 字段找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param`\r\n标签添加配置如下：\r\n\r\n```json\r\n{\r\n  \"pkg\": \"@capacitor/dialog\",\r\n  \"classpath\": \"Dialog\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，通过 `modules-name` 字段找到模块 `capacitor`，路径为 `target` 字段的\r\n`CMakeLists.txt` 文件，并根据 `param` 标签添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(Dialog)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  Dialog\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n)\r\n```\r\n\r\n#### 3. 复制源码文件\r\n\r\n根据 `plugin.xml` 的 `source-file` 项，根据 `src` 字段找到需要复制的文件，并根据 `modules-name` 字段和 `target-dir`\r\n字段找到文件复制的具体模块和目录：\r\n\r\n将源码中src/main/cpp/Dialog目录下的Dialog.h、Dialog.cpp、CMakeLists.txt文件引入到capacitor模块中src/main/cpp/Dialog目录下。\r\n\r\n将源码中src/main/ets/components/Dialog目录下的Dialog.ets文件引入到capacitor模块中src/main/ets/components/Dialog目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n\r\n在`capacitor`模块的`build-profile.json5`文件中，`buildOption/arkOptions/runtimeOnly/sources`配置项数组中加入步骤 3 中拷贝的\r\nets 文件路径：\r\n\r\n```json\r\n{\r\n  \"buildOption\": {\r\n    \"arkOptions\": {\r\n      \"runtimeOnly\": {\r\n        \"sources\": [\r\n          \"./src/main/ets/components/Dialog/Dialog.ets\"\r\n        ]\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 dialog 插件\r\nhionic plugin remove @capacitor/dialog\r\n```\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. capacitor: 8.0.0-ohos-8.0.0;SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n### 权限要求\r\n\r\n无需额外申请权限。\r\n\r\n## 使用示例\r\n\r\n### 示例1：警告弹窗（Alert）\r\n\r\n实现基础警告提示功能，点击按钮后关闭弹窗。\r\n\r\n```typescript\r\n// 导入 Dialog 模块\r\nimport { Dialog } from '@capacitor/dialog';\r\n\r\n// 警告弹窗方法\r\nconst showAlert = async () => {\r\n  try {\r\n    // 调用 alert 方法，传入标题与消息\r\n    await Dialog.alert({\r\n      title: '操作提示',\r\n      message: '功能已执行完成',\r\n      buttonTitle: '确定'\r\n    });\r\n    console.log('警告弹窗关闭');\r\n  } catch (error) {\r\n    console.error('警告弹窗调用失败：', error);\r\n  }\r\n};\r\n```\r\n\r\n### 示例2：确认选择框（Confirm）\r\n\r\n实现确认交互，根据用户选择执行不同逻辑。\r\n\r\n```typescript\r\n// 导入 Dialog 模块\r\nimport { Dialog } from '@capacitor/dialog';\r\n\r\n// 确认框方法\r\nconst showConfirm = async () => {\r\n  try {\r\n    // 调用 confirm 方法，获取用户选择结果\r\n    const { value } = await Dialog.confirm({\r\n      title: '确认操作',\r\n      message: '是否确认删除当前数据？',\r\n      okButtonTitle: '删除',\r\n      cancelButtonTitle: '取消'\r\n    });\r\n\r\n    if (value) {\r\n      console.log('用户确认执行删除操作');\r\n      // 执行删除逻辑\r\n    } else {\r\n      console.log('用户取消删除操作');\r\n    }\r\n  } catch (error) {\r\n    console.error('确认框调用失败：', error);\r\n  }\r\n};\r\n```\r\n\r\n### 示例3：输入提示框（Prompt）\r\n\r\n实现带输入框的交互，获取用户输入内容。\r\n\r\n```typescript\r\n// 导入 Dialog 模块\r\nimport { Dialog } from '@capacitor/dialog';\r\n\r\n// 输入框方法\r\nconst showPrompt = async () => {\r\n  try {\r\n    // 调用 prompt 方法，获取输入结果\r\n    const { value, cancelled } = await Dialog.prompt({\r\n      title: '输入信息',\r\n      message: '请输入您的昵称：',\r\n      inputPlaceholder: '请输入昵称',\r\n      inputText: '',\r\n      okButtonTitle: '确认',\r\n      cancelButtonTitle: '取消'\r\n    });\r\n\r\n    if (cancelled) {\r\n      console.log('用户取消输入操作');\r\n      return;\r\n    }\r\n\r\n    if (value && value.trim()) {\r\n      console.log('用户输入昵称：', value.trim());\r\n      // 执行昵称保存逻辑\r\n    } else {\r\n      console.log('用户输入内容为空');\r\n    }\r\n  } catch (error) {\r\n    console.error('输入框调用失败：', error);\r\n  }\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n@capacitor/dialog所有API均基于Promise实现，支持异步调用。\r\n\r\n### 1. 警告弹窗（Alert）\r\n\r\n展示包含标题、消息内容和单个按钮的提示弹窗，主要用于操作结果提示、信息告知等场景。\r\n\r\n#### 方法签名\r\n\r\n```\r\nalert(options:AlertOptions):Promise<void>\r\n```\r\n\r\n#### 参数说明\r\n\r\n| 参数名     | 类型                            | 说明                                            |\r\n|---------|-------------------------------|-----------------------------------------------|\r\n| options | [AlertOptions](#alertoptions) | 必选，警告弹窗配置参数，包含title、message、buttonTitle三个核心属性 |\r\n\r\n#### AlertOptions\r\n\r\n| 属性名         | 类型     | 说明             | 默认值  |\r\n|-------------|--------|----------------|------|\r\n| title       | string | 弹窗标题，显示在弹窗顶部   | 无    |\r\n| message     | string | 弹窗正文内容，显示在标题下方 | 无    |\r\n| buttonTitle | string | 按钮文字，点击后关闭弹窗   | \"OK\" |\r\n\r\n### 2. 确认选择框（Confirm）\r\n\r\n展示包含标题、消息内容、确认按钮和取消按钮的选择弹窗，主要用于用户决策确认场景。\r\n\r\n#### 方法签名\r\n\r\n```\r\nconfirm(options:ConfirmOptions):Promise<ConfirmResult>\r\n```\r\n\r\n#### 参数说明\r\n\r\n| 参数名     | 类型                                | 说明                                                               |\r\n|---------|-----------------------------------|------------------------------------------------------------------|\r\n| options | [ConfirmOptions](#confirmoptions) | 必选，确认框配置参数，包含title、message、okButtonTitle、cancelButtonTitle四个核心属性 |\r\n\r\n#### ConfirmOptions\r\n\r\n| 属性名               | 类型     | 说明             | 默认值      |\r\n|-------------------|--------|----------------|----------|\r\n| title             | string | 弹窗标题，显示在弹窗顶部   | 无        |\r\n| message           | string | 弹窗正文内容，显示在标题下方 | 无        |\r\n| okButtonTitle     | string | 确认按钮文字         | \"OK\"     |\r\n| cancelButtonTitle | string | 取消按钮文字         | \"Cancel\" |\r\n\r\n#### ConfirmResult\r\n\r\n| 属性名   | 类型      | 说明                         |\r\n|-------|---------|----------------------------|\r\n| value | boolean | 点击确认按钮返回true，点击取消按钮返回false |\r\n\r\n### 3. 输入提示框（Prompt）\r\n\r\n展示包含标题、消息内容、输入框、确认按钮和取消按钮的弹窗，主要用于获取用户输入信息。\r\n\r\n#### 方法签名\r\n\r\n```\r\nprompt(options:PromptOptions):Promise<PromptResult>\r\n```\r\n\r\n#### 参数说明\r\n\r\n| 参数名     | 类型                              | 说明                                                                                          |\r\n|---------|---------------------------------|---------------------------------------------------------------------------------------------|\r\n| options | [PromptOptions](#promptoptions) | 必选，输入框配置参数，包含title、message、inputPlaceholder、inputText、okButtonTitle、cancelButtonTitle六个核心属性 |\r\n\r\n#### PromptOptions\r\n\r\n| 属性名               | 类型     | 说明               | 默认值      |\r\n|-------------------|--------|------------------|----------|\r\n| title             | string | 弹窗标题，显示在弹窗顶部     | 无        |\r\n| message           | string | 弹窗正文内容，显示在输入框上方  | 无        |\r\n| inputPlaceholder  | string | 输入框占位提示文字，未输入时显示 | 无        |\r\n| inputText         | string | 输入框默认预填内容        | 无        |\r\n| okButtonTitle     | string | 确认按钮文字           | \"OK\"     |\r\n| cancelButtonTitle | string | 取消按钮文字           | \"Cancel\" |\r\n\r\n#### PromptResult\r\n\r\n| 属性名       | 类型      | 说明                         |\r\n|-----------|---------|----------------------------|\r\n| value     | string  | 用户输入的内容，取消输入时返回空字符串        |\r\n| cancelled | boolean | 点击取消按钮返回true，点击确认按钮返回false |\r\n\r\n## 目录结构\r\n\r\n```plaintext\r\n|---- 目录\r\n|     |---- src/main  # 插件的实现代码\r\n|           |----cpp  # C++ 代码\r\n|           |----ets   # ArkTS 代码\r\n|     |---- README.md          # 说明文档\r\n|     |---- package.json       # 配置文件\r\n|     |---- plugin.xml       # 插件配置文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-dialog/issues)\r\n，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-dialog/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。","readmeFilename":"README.md"}