---
description: Capacitor plugin for native alert, confirm, and prompt dialogs on Android, iOS, and the web.
title: Capacitor Dialog Plugin for Android, iOS & Web - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/dialog.png
---

<!doctype html> 

[Skip to content ](#capacitor-dialog-plugin) 

[📲 Introducing **Build Sharing** — get your builds onto testers' devices with a link & QR code. No account required. ](/blog/share-mobile-app-builds-with-testers/) 

* [ SDKs ](/docs/sdks/)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Migrating from @capacitor/dialog ](#migrating-from-capacitordialog)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Electron ](/docs/sdks/capacitor/electron/)
* [ Exif ](/docs/sdks/capacitor/exif/)
* [ Facebook Sign-In ](/docs/sdks/capacitor/facebook-sign-in/)
* [ File Compressor ](/docs/sdks/capacitor/file-compressor/)
* [ File Opener ](/docs/sdks/capacitor/file-opener/)
* [ File Picker ](/docs/sdks/capacitor/file-picker/)
* [ Firebase ](/docs/sdks/capacitor/firebase/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Notifications
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Migrating from @capacitor/dialog ](#migrating-from-capacitordialog)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Dialog Plugin[¶](#capacitor-dialog-plugin "Permanent link")

Capacitor plugin for native alert, confirm, and prompt dialogs.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

* 💬 **Alert**: Display a native alert dialog with a single button.
* ❓ **Confirm**: Ask the user to confirm or cancel an action.
* ⌨️ **Prompt**: Request text input from the user.
* 🌐 **Cross-platform**: Works on Android, iOS, and the web.
* 🔒 **App Store safe**: Uses only official platform APIs.
* 🤝 **Compatibility**: Works alongside the [Action Sheet](https://capawesome.io/docs/sdks/capacitor/action-sheet/), [Datetime Picker](https://capawesome.io/docs/sdks/capacitor/datetime-picker/) and [Toast](https://capawesome.io/docs/sdks/capacitor/toast/) plugins.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Use Cases[¶](#use-cases "Permanent link")

The Dialog plugin is typically used whenever an app needs a quick native interaction with the user, for example:

* **Confirmations**: Ask the user to confirm a destructive action, such as deleting an item, before executing it.
* **Notices**: Inform the user about the result of an action, such as saved changes or an error, with a simple alert.
* **Quick text input**: Ask the user for a short text value, such as a name, without building a custom form.
* **Native look and feel**: Replace the browser's `window.alert`, `window.confirm`, and `window.prompt` with native dialogs on Android and iOS.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-dialog` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-dialog
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

### Android[¶](#android "Permanent link")

No additional configuration is required for this plugin.

### iOS[¶](#ios "Permanent link")

No additional configuration is required for this plugin.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

The following examples show how to display an alert dialog, ask the user for confirmation, and request text input from the user.

### Display an alert dialog[¶](#display-an-alert-dialog "Permanent link")

Show a message with a single button, for example to inform the user about the result of an action:

`[](#%5F%5Fcodelineno-3-1)import { Dialog } from '@capawesome/capacitor-dialog';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const alert = async () => {
[](#%5F%5Fcodelineno-3-4)  await Dialog.alert({
[](#%5F%5Fcodelineno-3-5)    title: 'Success',
[](#%5F%5Fcodelineno-3-6)    message: 'Your changes have been saved.',
[](#%5F%5Fcodelineno-3-7)  });
[](#%5F%5Fcodelineno-3-8)};
`

### Ask the user for confirmation[¶](#ask-the-user-for-confirmation "Permanent link")

Show a confirmation dialog with two buttons. The result tells you whether the user confirmed the dialog:

`[](#%5F%5Fcodelineno-4-1)import { Dialog } from '@capawesome/capacitor-dialog';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const confirm = async () => {
[](#%5F%5Fcodelineno-4-4)  const { value } = await Dialog.confirm({
[](#%5F%5Fcodelineno-4-5)    title: 'Confirm',
[](#%5F%5Fcodelineno-4-6)    message: 'Do you want to delete this item?',
[](#%5F%5Fcodelineno-4-7)  });
[](#%5F%5Fcodelineno-4-8)  console.log('Confirmed:', value);
[](#%5F%5Fcodelineno-4-9)};
`

### Request text input from the user[¶](#request-text-input-from-the-user "Permanent link")

Show a prompt dialog with a text input, a confirm and a cancel button. The result contains the entered value and whether the user canceled the dialog:

`[](#%5F%5Fcodelineno-5-1)import { Dialog } from '@capawesome/capacitor-dialog';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const prompt = async () => {
[](#%5F%5Fcodelineno-5-4)  const { value, canceled } = await Dialog.prompt({
[](#%5F%5Fcodelineno-5-5)    title: 'Name',
[](#%5F%5Fcodelineno-5-6)    message: 'What is your name?',
[](#%5F%5Fcodelineno-5-7)    inputPlaceholder: 'Enter your name',
[](#%5F%5Fcodelineno-5-8)  });
[](#%5F%5Fcodelineno-5-9)  console.log('Value:', value, 'Canceled:', canceled);
[](#%5F%5Fcodelineno-5-10)};
`

## API[¶](#api "Permanent link")

* [alert(...)](#alert)
* [confirm(...)](#confirm)
* [prompt(...)](#prompt)
* [Interfaces](#interfaces)

### alert(...)[¶](#alert "Permanent link")

`[](#%5F%5Fcodelineno-6-1)alert(options: AlertOptions) => Promise<void>
`

Display an alert dialog with a single button.

| Param       | Type                          |
| ----------- | ----------------------------- |
| **options** | [AlertOptions](#alertoptions) |

**Since:** 0.1.0

---

### confirm(...)[¶](#confirm "Permanent link")

`[](#%5F%5Fcodelineno-7-1)confirm(options: ConfirmOptions) => Promise<ConfirmResult>
`

Display a confirmation dialog with two buttons.

| Param       | Type                              |
| ----------- | --------------------------------- |
| **options** | [ConfirmOptions](#confirmoptions) |

**Returns:** `Promise<[ConfirmResult](#confirmresult)>`

**Since:** 0.1.0

---

### prompt(...)[¶](#prompt "Permanent link")

`[](#%5F%5Fcodelineno-8-1)prompt(options: PromptOptions) => Promise<PromptResult>
`

Display a prompt dialog with a text input, a confirm and a cancel button.

| Param       | Type                            |
| ----------- | ------------------------------- |
| **options** | [PromptOptions](#promptoptions) |

**Returns:** `Promise<[PromptResult](#promptresult)>`

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### AlertOptions[¶](#alertoptions "Permanent link")

| Prop            | Type   | Description                                                                                                         | Default | Since |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **buttonTitle** | string | The title of the button that confirms the dialog. On the web, the button title cannot be customized and is ignored. | 'OK'    | 0.1.0 |
| **message**     | string | The message to display in the dialog.                                                                               |         | 0.1.0 |
| **title**       | string | The title of the dialog. On the web, the title cannot be customized and is ignored.                                 |         | 0.1.0 |

#### ConfirmResult[¶](#confirmresult "Permanent link")

| Prop      | Type    | Description                            | Since |
| --------- | ------- | -------------------------------------- | ----- |
| **value** | boolean | Whether the user confirmed the dialog. | 0.1.0 |

#### ConfirmOptions[¶](#confirmoptions "Permanent link")

| Prop                  | Type   | Description                                                                                                         | Default  | Since |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------- | -------- | ----- |
| **cancelButtonTitle** | string | The title of the button that cancels the dialog. On the web, the button title cannot be customized and is ignored.  | 'Cancel' | 0.1.0 |
| **message**           | string | The message to display in the dialog.                                                                               |          | 0.1.0 |
| **okButtonTitle**     | string | The title of the button that confirms the dialog. On the web, the button title cannot be customized and is ignored. | 'OK'     | 0.1.0 |
| **title**             | string | The title of the dialog. On the web, the title cannot be customized and is ignored.                                 |          | 0.1.0 |

#### PromptResult[¶](#promptresult "Permanent link")

| Prop         | Type    | Description                           | Since |
| ------------ | ------- | ------------------------------------- | ----- |
| **canceled** | boolean | Whether the user canceled the dialog. | 0.1.0 |
| **value**    | string  | The value of the text input.          | 0.1.0 |

#### PromptOptions[¶](#promptoptions "Permanent link")

| Prop                  | Type   | Description                                                                                                         | Default  | Since |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------- | -------- | ----- |
| **cancelButtonTitle** | string | The title of the button that cancels the dialog. On the web, the button title cannot be customized and is ignored.  | 'Cancel' | 0.1.0 |
| **inputPlaceholder**  | string | The placeholder of the text input. On the web, the placeholder cannot be customized and is ignored.                 |          | 0.1.0 |
| **inputText**         | string | The initial value of the text input.                                                                                |          | 0.1.0 |
| **message**           | string | The message to display in the dialog.                                                                               |          | 0.1.0 |
| **okButtonTitle**     | string | The title of the button that confirms the dialog. On the web, the button title cannot be customized and is ignored. | 'OK'     | 0.1.0 |
| **title**             | string | The title of the dialog. On the web, the title cannot be customized and is ignored.                                 |          | 0.1.0 |

## Migrating from `@capacitor/dialog`[¶](#migrating-from-capacitordialog "Permanent link")

This plugin is API-compatible with the official [@capacitor/dialog](https://github.com/ionic-team/capacitor-plugins/tree/main/dialog) plugin, with a single difference: the `prompt(...)` result uses the property `canceled` (one `l`) instead of `cancelled` (two `l`s).

| @capacitor/dialog                      | @capawesome/capacitor-dialog           |
| -------------------------------------- | -------------------------------------- |
| alert({ title, message, buttonTitle }) | alert({ title, message, buttonTitle }) |
| confirm({ ... }) → { value }           | confirm({ ... }) → { value }           |
| prompt({ ... }) → { value, cancelled } | prompt({ ... }) → { value, canceled }  |

## FAQ[¶](#faq "Permanent link")

### How is this plugin different from other similar plugins?[¶](#how-is-this-plugin-different-from-other-similar-plugins "Permanent link")

It brings native alert, confirm, and prompt dialogs to Android, iOS, and the web through a single, fully typed API, using only official platform APIs so it stays safe for App Store and Google Play submissions. It supports both CocoaPods and Swift Package Manager on iOS and is actively maintained against the latest Capacitor and OS versions, with customizable button titles on Android and iOS. If you only need a quick native message, it is refreshingly simple to drop in; if you need consistent alert, confirm, and prompt behavior across every platform, it is built for exactly that.

### How is this plugin different from the official `@capacitor/dialog` plugin?[¶](#how-is-this-plugin-different-from-the-official-capacitordialog-plugin "Permanent link")

This plugin is API-compatible with the official `@capacitor/dialog` plugin, with a single difference: the `prompt(...)` result uses the property `canceled` (one `l`) instead of `cancelled` (two `l`s). See the [migration table](#migrating-from-capacitordialog) above for the complete method mapping.

### Can I customize the dialog buttons?[¶](#can-i-customize-the-dialog-buttons "Permanent link")

Yes, on Android and iOS you can customize the button titles using the `buttonTitle`, `okButtonTitle`, and `cancelButtonTitle` options. On the web, the button titles cannot be customized and are ignored, because the browser's built-in dialogs are used.

### How do I know whether the user canceled a prompt?[¶](#how-do-i-know-whether-the-user-canceled-a-prompt "Permanent link")

The result of the `prompt(...)` method contains a `canceled` property that is `true` if the user canceled the dialog, in addition to the `value` property with the text input. For confirmation dialogs, the `value` property of the `confirm(...)` result tells you whether the user confirmed the dialog.

### Why is the dialog title not displayed on the web?[¶](#why-is-the-dialog-title-not-displayed-on-the-web "Permanent link")

On the web, the title and button titles cannot be customized and are ignored, because the plugin uses the browser's built-in dialogs. Only the message is displayed. On Android and iOS, the title is fully supported.

### Is this plugin safe to use for App Store submissions?[¶](#is-this-plugin-safe-to-use-for-app-store-submissions "Permanent link")

Yes, the plugin uses only official platform APIs to display the dialogs, so it is safe to use in apps submitted to the Apple App Store and Google Play Store.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [Action Sheet](https://capawesome.io/docs/sdks/capacitor/action-sheet/): Show native action sheets.
* [Datetime Picker](https://capawesome.io/docs/sdks/capacitor/datetime-picker/): Let the user pick a date and time with a native picker.
* [Toast](https://capawesome.io/docs/sdks/capacitor/toast/): Show native toast notifications.

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/dialog/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/dialog/LICENSE).

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/dialog/#article", "headline": "Capacitor Dialog Plugin for Android, iOS & Web", "name": "Capacitor Dialog Plugin for Android, iOS & Web", "description": "Capacitor plugin for native alert, confirm, and prompt dialogs on Android, iOS, and the web.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/dialog/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/dialog/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/dialog/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/dialog/#software", "name": "Capacitor Dialog Plugin for Android, iOS & Web", "description": "Capacitor plugin for native alert, confirm, and prompt dialogs on Android, iOS, and the web.", "url": "https://capawesome.io/docs/sdks/capacitor/dialog/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this plugin different from other similar plugins?", "acceptedAnswer": {"@type": "Answer", "text": "It brings native alert, confirm, and prompt dialogs to Android, iOS, and the web through a single, fully typed API, using only official platform APIs so it stays safe for App Store and Google Play submissions. It supports both CocoaPods and Swift Package Manager on iOS and is actively maintained against the latest Capacitor and OS versions, with customizable button titles on Android and iOS. If you only need a quick native message, it is refreshingly simple to drop in; if you need consistent alert, confirm, and prompt behavior across every platform, it is built for exactly that."}}, {"@type": "Question", "name": "How is this plugin different from the official @capacitor/dialog plugin?", "acceptedAnswer": {"@type": "Answer", "text": "This plugin is API-compatible with the official @capacitor/dialog plugin, with a single difference: the prompt(...) result uses the property canceled (one l) instead of cancelled (two l s). See the migration table above for the complete method mapping."}}, {"@type": "Question", "name": "Can I customize the dialog buttons?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, on Android and iOS you can customize the button titles using the buttonTitle, okButtonTitle, and cancelButtonTitle options. On the web, the button titles cannot be customized and are ignored, because the browser's built-in dialogs are used."}}, {"@type": "Question", "name": "How do I know whether the user canceled a prompt?", "acceptedAnswer": {"@type": "Answer", "text": "The result of the prompt(...) method contains a canceled property that is true if the user canceled the dialog, in addition to the value property with the text input. For confirmation dialogs, the value property of the confirm(...) result tells you whether the user confirmed the dialog."}}, {"@type": "Question", "name": "Why is the dialog title not displayed on the web?", "acceptedAnswer": {"@type": "Answer", "text": "On the web, the title and button titles cannot be customized and are ignored, because the plugin uses the browser's built-in dialogs. Only the message is displayed. On Android and iOS, the title is fully supported."}}, {"@type": "Question", "name": "Is this plugin safe to use for App Store submissions?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin uses only official platform APIs to display the dialogs, so it is safe to use in apps submitted to the Apple App Store and Google Play Store."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/dialog/"}
```
