{"_id":"@capawesome/capacitor-phone-dialer","_rev":"4-411e41c951fa4eb69685a3dccc90df29","name":"@capawesome/capacitor-phone-dialer","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-phone-dialer","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-phone-dialer@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/phone-dialer/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"3f39f2f7f4ea90e26961cd1f1e05e05613fe7e0a","tarball":"https://registry.npmjs.org/@capawesome/capacitor-phone-dialer/-/capacitor-phone-dialer-0.0.1.tgz","fileCount":38,"integrity":"sha512-m7y6JwSm0oZ5hKkSFfmh6sP8CmfvTyjomDLI1SzS/hIhu4OgIOzrKeTPMvG2odfOytyM8lcK+vgBXFzXHYQTyg==","signatures":[{"sig":"MEQCIFDval44UiH3wS8bgFcjAXBE7FwjP4Spd3xQENHg8ythAiAyj1pufbwz/2E7YarMEn1zvv8byUjVZ507CYV0xlXgrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41469},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"e18228f8362b044cd453aba542fe8e0a02fd996f","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api PhoneDialerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin to open the native phone dialer.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-phone-dialer_0.0.1_1783426849288_0.1267469025726704","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-phone-dialer","version":"0.1.0","keywords":["capacitor","plugin","native","capacitor-plugin","phone dialer","dialer","phone call","tap to call","click to call","call phone number","tel"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-phone-dialer@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/phone-dialer/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"c59f907461749a10cdfd4e376c0512cf358f48dc","tarball":"https://registry.npmjs.org/@capawesome/capacitor-phone-dialer/-/capacitor-phone-dialer-0.1.0.tgz","fileCount":38,"integrity":"sha512-ZhPAlOyu3Ly3CUHEVPQ/vms+rYjDsFoVLS7B1VEeisskZNKQCRkCeQNkL/Fl9rTaXCn8ir95LgkYqj3TpzDdpA==","signatures":[{"sig":"MEYCIQC564v+9xFBDlIpWlTyuly+mpt6x0dnDr+raUEQ3ut4oQIhAJil+LYQvycEk/leiXdJuCE+PsfY7ZqXktPxbRyBcVau","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-phone-dialer@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46133},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"1ce17b1fd14c43b2f1d5d3c2da82221e1d1dca37","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api PhoneDialerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:caf79bdf-635f-444a-a281-fa4ec16626f1"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to open the native phone dialer on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-phone-dialer_0.1.0_1784015577636_0.3713125343258632","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-phone-dialer","version":"0.1.1","keywords":["capacitor","plugin","native","capacitor-plugin","phone dialer","dialer","phone call","tap to call","click to call","call phone number","tel"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-phone-dialer@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/phone-dialer/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"cb44690c3ce17d07cee54cc3765bb2c92e30028b","tarball":"https://registry.npmjs.org/@capawesome/capacitor-phone-dialer/-/capacitor-phone-dialer-0.1.1.tgz","fileCount":38,"integrity":"sha512-dMTwTW8ZJ8s3gUQKi6+MuYTLjfxvMGPdiQJEgM9YtCyC/zbtFA5FCsr80f9ihFocsrOnFlwhZy1qJb8bRzBNyA==","signatures":[{"sig":"MEQCIEMvsQ49fY5nZkv0jnp6BbFUTVSnMDwOjBbftWEWElHuAiAcvgnhch8ua37d/i9U3rScBuqIablOmwescDXc9LoMHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-phone-dialer@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46142},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"3e61f4b412f9f3f512c21169bb135bbb23a67e6d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api PhoneDialerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:caf79bdf-635f-444a-a281-fa4ec16626f1"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to open the native phone dialer on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-phone-dialer_0.1.1_1784103029977_0.9573329874253125","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@capawesome/capacitor-phone-dialer","version":"0.1.2","description":"Capacitor plugin to open the native phone dialer on Android and iOS.","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-plugins.git"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/capawesome-team/"},{"type":"opencollective","url":"https://opencollective.com/capawesome"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/phone-dialer/","keywords":["capacitor","plugin","native","capacitor-plugin","phone dialer","dialer","phone call","tap to call","click to call","call phone number","tel"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","docgen":"docgen --api PhoneDialerPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd ..","prepublishOnly":"npm run build"},"devDependencies":{"@capacitor/android":"8.0.0","@capacitor/cli":"8.4.2","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/ios":"8.0.0","@ionic/eslint-config":"0.4.0","eslint":"8.57.0","prettier-plugin-java":"2.9.7","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"publishConfig":{"access":"public"},"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","_id":"@capawesome/capacitor-phone-dialer@0.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-d/KLe5rd1xBJxptlaaKHs4mdv1OicXqSZcOL4AODjo11Doqkkk36FCUIdiTXm4SHmwPx/Efxs1D/b/xjZJpuQw==","shasum":"b4fa6776b218b1e439364bb4c50f78ba4cb2d7f9","tarball":"https://registry.npmjs.org/@capawesome/capacitor-phone-dialer/-/capacitor-phone-dialer-0.1.2.tgz","fileCount":38,"unpackedSize":45990,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-phone-dialer@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDYP7zEiCR+YcHfCvw/CvHNQeJhzlF59blrmnhWjgnLjwIhALZrgNVFrvzQ0oUHjthU0uKMVfoGEz2PjI2epo8z5Uep"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:caf79bdf-635f-444a-a281-fa4ec16626f1"}},"directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-phone-dialer_0.1.2_1788337390076_0.2632940620120663"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-07T12:20:49.138Z","modified":"2026-09-02T08:23:10.589Z","0.0.1":"2026-07-07T12:20:49.446Z","0.1.0":"2026-07-14T07:52:57.810Z","0.1.1":"2026-07-15T08:10:30.122Z","0.1.2":"2026-09-02T08:23:10.209Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/phone-dialer/","keywords":["capacitor","plugin","native","capacitor-plugin","phone dialer","dialer","phone call","tap to call","click to call","call phone number","tel"],"repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-plugins.git"},"description":"Capacitor plugin to open the native phone dialer on Android and iOS.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor Phone Dialer Plugin\n\nCapacitor plugin to open the native phone dialer prefilled with a phone number.\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\n- 📞 **Dial**: Open the native phone dialer prefilled with a phone number.\n- ✅ **Capability check**: Check whether the device is able to open the phone dialer.\n- 🔒 **Privacy-friendly**: The user always reviews the number and places the call. The plugin never calls on its own.\n- 🤝 **Compatibility**: Works alongside the [Mail Composer](https://capawesome.io/docs/sdks/capacitor/mail-composer/) and [SMS Composer](https://capawesome.io/docs/sdks/capacitor/sms-composer/) plugins.\n- 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n## Use Cases\n\nThe Phone Dialer plugin is typically used whenever an app wants to offer a tap-to-call experience, for example:\n\n- **Customer support**: Let users call your support hotline directly from a help or contact screen.\n- **Business directories**: Let users call a listed business, restaurant, or practice with a single tap.\n- **CRM and field service apps**: Let users call customers or leads from a detail view, with the number prefilled in the dialer.\n- **Capability-aware UI**: Use the `canDial()` method to hide or disable call buttons on devices without telephony capability, such as Wi-Fi-only tablets.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.x.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-phone-dialer` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capawesome/capacitor-phone-dialer\nnpx cap sync\n```\n\nThis plugin is only available on **Android** and **iOS**. On Web, all methods reject as unimplemented. Use an `<a href=\"tel:...\">` link on the web instead.\n\n### Android\n\nNo additional configuration is required. The plugin declares the necessary `<queries>` element for the `tel` scheme in its `AndroidManifest.xml`, so the phone dialer can be detected on Android 11 (API level 30) and higher.\n\n### iOS\n\nTo be able to detect whether the device can open the phone dialer, add the `tel` scheme to the `LSApplicationQueriesSchemes` array in your app's `Info.plist` file:\n\n```xml\n<key>LSApplicationQueriesSchemes</key>\n<array>\n  <string>tel</string>\n</array>\n```\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to check whether the device can open the phone dialer and how to open it with a prefilled number.\n\n### Check whether the device can open the phone dialer\n\nUse the `canDial()` method to check whether the device is able to open the phone dialer, for example to hide or disable call buttons. On devices without telephony capability (e.g. Wi-Fi-only tablets or iPod touch), it resolves with `false`. Only available on Android and iOS:\n\n```typescript\nimport { PhoneDialer } from '@capawesome/capacitor-phone-dialer';\n\nconst canDial = async () => {\n  const { canDial } = await PhoneDialer.canDial();\n  return canDial;\n};\n```\n\n### Open the phone dialer with a prefilled number\n\nUse the `dial(...)` method to open the native phone dialer prefilled with the given number. The user reviews the number and decides whether to place the call. Only available on Android and iOS:\n\n```typescript\nimport { PhoneDialer } from '@capawesome/capacitor-phone-dialer';\n\nconst dial = async () => {\n  await PhoneDialer.dial({ number: '+41791234567' });\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`canDial()`](#candial)\n* [`dial(...)`](#dial)\n* [Interfaces](#interfaces)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### canDial()\n\n```typescript\ncanDial() => Promise<CanDialResult>\n```\n\nCheck whether the device is able to open the phone dialer.\n\nOn devices without telephony capability (e.g. Wi-Fi-only tablets or\niPod touch), this resolves with `canDial` set to `false`.\n\nOnly available on Android and iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#candialresult\">CanDialResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### dial(...)\n\n```typescript\ndial(options: DialOptions) => Promise<void>\n```\n\nOpen the native phone dialer prefilled with the given number.\n\nThe user reviews the number and decides whether to place the call. The\nplugin never places the call itself.\n\nIf the device is not able to open the phone dialer, the call rejects as\nunavailable.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                |\n| ------------- | --------------------------------------------------- |\n| **`options`** | <code><a href=\"#dialoptions\">DialOptions</a></code> |\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### CanDialResult\n\n| Prop          | Type                 | Description                                          | Since |\n| ------------- | -------------------- | ---------------------------------------------------- | ----- |\n| **`canDial`** | <code>boolean</code> | Whether the device is able to open the phone dialer. | 0.1.0 |\n\n\n#### DialOptions\n\n| Prop         | Type                | Description                                                                                                                                                                   | Since |\n| ------------ | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`number`** | <code>string</code> | The phone number to prefill in the dialer. Only digits and the characters `+`, `*` and `#` are kept. All other characters (e.g. spaces or dashes) are removed before dialing. | 0.1.0 |\n\n</docgen-api>\n\n## Direct Calling\n\nThis plugin only **opens** the phone dialer prefilled with the number. It never places the call directly. This is a deliberate design decision:\n\n- On **Android**, direct calling would require the `android.permission.CALL_PHONE` runtime permission and comes with additional Google Play policy requirements. The plugin uses `Intent.ACTION_DIAL`, which does not require any permission.\n- On **iOS**, there is no public API to place a call without user confirmation. The plugin opens the `tel:` URL, which shows the system Call/Cancel confirmation.\n\n## Number Sanitization\n\nBefore opening the dialer, the phone number is sanitized: all characters except digits and `+`, `*` and `#` are removed. If nothing remains after sanitization, the call rejects with an error.\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt opens the native phone dialer prefilled with a number on Android and iOS, and adds a `canDial()` capability check so you can hide or disable call buttons on devices without telephony, such as Wi-Fi-only tablets. It is privacy-friendly by design: the user always reviews the number and places the call, so on Android it needs no runtime permission by using `Intent.ACTION_DIAL`, and it sanitizes the number for you before dialing. The API is fully typed, supports both CocoaPods and Swift Package Manager on iOS, and is actively maintained against the latest Capacitor and OS versions.\n\n### Can the plugin place a phone call directly without user confirmation?\n\nNo, this is a deliberate design decision. On Android, direct calling would require the `CALL_PHONE` runtime permission and comes with additional Google Play policy requirements, so the plugin uses `Intent.ACTION_DIAL` instead. On iOS, there is no public API to place a call without user confirmation. The plugin always opens the dialer prefilled with the number and the user decides whether to place the call.\n\n### Does the plugin require any permissions?\n\nNo, the plugin does not require any runtime permissions. On Android, it uses `Intent.ACTION_DIAL`, which does not require any permission. On iOS, you only need to add the `tel` scheme to the `LSApplicationQueriesSchemes` array in your app's `Info.plist` file so that the `canDial()` method can detect whether the device can open the phone dialer (see [Installation](#installation)).\n\n### Why does the `canDial` method return `false`?\n\nThe `canDial()` method resolves with `false` on devices without telephony capability, such as Wi-Fi-only tablets or iPod touch. On iOS, it also returns `false` if the `tel` scheme is missing from the `LSApplicationQueriesSchemes` array in your app's `Info.plist` file.\n\n### What happens to spaces or dashes in the phone number?\n\nBefore opening the dialer, the phone number is sanitized: all characters except digits and `+`, `*` and `#` are kept, everything else (e.g. spaces or dashes) is removed. If nothing remains after sanitization, the call rejects with an error.\n\n### Can I use this plugin on the Web?\n\nNo, the plugin is only available on Android and iOS. On the Web, all methods reject as unimplemented. Use an `<a href=\"tel:...\">` link on the web instead.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, 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.\n\n## Related Plugins\n\n- [Contacts](https://capawesome.io/docs/sdks/capacitor/contacts/): Read, write, or select device contacts, for example to look up a phone number before dialing.\n- [Mail Composer](https://capawesome.io/docs/sdks/capacitor/mail-composer/): Open the native email composer.\n- [SMS Composer](https://capawesome.io/docs/sdks/capacitor/sms-composer/): Open the native SMS composer prefilled with recipients and a message body.\n\n## Newsletter\n\nStay 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/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/phone-dialer/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/phone-dialer/LICENSE).\n","readmeFilename":"README.md"}