{"_id":"@capawesome/capacitor-app-launcher","_rev":"4-838ff95e31fbcb1969c40a3ac9f76711","name":"@capawesome/capacitor-app-launcher","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-app-launcher","version":"0.0.1","keywords":["capacitor","plugin","native","app launcher","deep link"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-app-launcher@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/app-launcher/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"cd106899dbc564383db784a3c7c9603e6d05a7f4","tarball":"https://registry.npmjs.org/@capawesome/capacitor-app-launcher/-/capacitor-app-launcher-0.0.1.tgz","fileCount":42,"integrity":"sha512-wsnstlwHvJpfnSypwAeMEWOZgLMRD13n5sPAU3gj8m0ZcRprpdV7FtSYRJMCfIg28BctlX+pYTGhsSmHrikAEQ==","signatures":[{"sig":"MEYCIQDuIv5wOzU3eYkd0MN+ec9JVRGO4xB4zZ3fKKsIcLnSSgIhANAnV0pEKQBgUle6ClzlfaDnbyE1kcZJiRXmXtQRlOGR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48337},"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 AppLauncherPlugin --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 check if an app can be opened and to open it.","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-app-launcher_0.0.1_1783426804761_0.5831700552826078","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-app-launcher","version":"0.1.0","keywords":["capacitor","plugin","native","app launcher","deep link","capacitor-plugin","open app","launch app","url scheme","package name","open external app","can open url"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-app-launcher@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/app-launcher/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"249ccf62febe7f91e15a2635c9aec20ea49eccc7","tarball":"https://registry.npmjs.org/@capawesome/capacitor-app-launcher/-/capacitor-app-launcher-0.1.0.tgz","fileCount":42,"integrity":"sha512-QU11iXelof3a/9xSl8+GifEMqJtiQAtpdPCTpSZAElWrO4X2SOVXkPFK2ho6wyyPEDj4AVaV/MOWTn49+SIP9w==","signatures":[{"sig":"MEYCIQDwkQTsLSuE4EQyt+gq23Ogz/65aLQFORpZP7EKmQ/g1QIhAMD/yhsIntaxnCJZdozQ+/v3+u1IAzAk+w+YOlgJ4+Al","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-app-launcher@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52604},"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 AppLauncherPlugin --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:d494d8d4-ccc4-4997-a18c-06597faaf86c"}},"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 check if an app can be opened and to open it on Android, iOS, and Web.","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-app-launcher_0.1.0_1784016268172_0.2797068594464569","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-app-launcher","version":"0.1.1","keywords":["capacitor","plugin","native","app launcher","deep link","capacitor-plugin","open app","launch app","url scheme","package name","open external app","can open url"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-app-launcher@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/app-launcher/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"26b12412a127bca06c8ee7944b1efce3869ae4eb","tarball":"https://registry.npmjs.org/@capawesome/capacitor-app-launcher/-/capacitor-app-launcher-0.1.1.tgz","fileCount":42,"integrity":"sha512-8D5zyHKLGV0jQ4T8EvVhIn2LmrCcxAgVztGTY22BMklKIwY4jTtKOxB20EuX8d+xsRLnq2uZhYC5FQcTbJ69KQ==","signatures":[{"sig":"MEYCIQDXGkUrxGDqI9ze7DwQa0dAYSliesf4CzxbNvwxOpZ2vwIhAMDa/YcUrKRPWSEvsaIyZPs2o5wqHNtUIiNm5yUSxhbK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-app-launcher@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52613},"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 AppLauncherPlugin --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:d494d8d4-ccc4-4997-a18c-06597faaf86c"}},"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 check if an app can be opened and to open it on Android, iOS, and Web.","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-app-launcher_0.1.1_1784102941721_0.4568991077643685","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@capawesome/capacitor-app-launcher","version":"0.1.2","description":"Capacitor plugin to check if an app can be opened and to open it on Android, iOS, and Web.","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/app-launcher/","keywords":["capacitor","plugin","native","app launcher","deep link","capacitor-plugin","open app","launch app","url scheme","package name","open external app","can open url"],"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 AppLauncherPlugin --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-app-launcher@0.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-fWVTHXfE6s7gV2ZAIjcvfILQ7so8FGtZb3UilGPmmb9mfP1MLm20z8BLSowyLG/2791mw2FNaFjmJWsZG4jI2g==","shasum":"27f5a9653cb4c45bc58a5372c10b7c67b6882227","tarball":"https://registry.npmjs.org/@capawesome/capacitor-app-launcher/-/capacitor-app-launcher-0.1.2.tgz","fileCount":42,"unpackedSize":52461,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-app-launcher@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDOiqN8XMpa/vNoP/7a/8KBO85YwuwWJ2IC/nphO9HPgIgRqt/alh9v3PIzKErkeMKndp/NJOENBwZ2RuNMNTmF3M="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d494d8d4-ccc4-4997-a18c-06597faaf86c"}},"directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-app-launcher_0.1.2_1788337292243_0.08930734795877426"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-07T12:20:04.478Z","modified":"2026-09-02T08:21:32.752Z","0.0.1":"2026-07-07T12:20:04.917Z","0.1.0":"2026-07-14T08:04:28.294Z","0.1.1":"2026-07-15T08:09:01.919Z","0.1.2":"2026-09-02T08:21:32.392Z"},"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/app-launcher/","keywords":["capacitor","plugin","native","app launcher","deep link","capacitor-plugin","open app","launch app","url scheme","package name","open external app","can open url"],"repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-plugins.git"},"description":"Capacitor plugin to check if an app can be opened and to open it on Android, iOS, and Web.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor App Launcher Plugin\n\nCapacitor plugin to check if an app can be opened and to open it.\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- 🔗 **Open apps**: Open another app by its URL scheme or package name.\n- ✅ **Availability**: Check whether an app can be opened before trying to open it.\n- 🤖 **Package names**: Check and open apps by their package name on Android.\n- 🔒 **App Store safe**: Uses only official platform APIs.\n- 🤝 **Compatibility**: Works alongside the [Maps Launcher](https://capawesome.io/docs/sdks/capacitor/maps-launcher/) and [Settings Launcher](https://capawesome.io/docs/sdks/capacitor/settings-launcher/) 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 App Launcher plugin is typically used to hand the user over to another app, for example:\n\n- **App-to-app navigation**: Open a companion or partner app directly from your app via its URL scheme or package name.\n- **Graceful fallbacks**: Check whether an app can be opened first and show an alternative if it is not installed.\n- **Composing emails**: Open the user's mail app with a `mailto:` URL.\n- **Launching Android apps by package name**: Open a specific app such as Gmail (`com.google.android.gm`) on Android.\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-app-launcher` 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-app-launcher\nnpx cap sync\n```\n\n### Android\n\nStarting with Android 11 (API level 30), apps must declare the packages and URL schemes they want to check or open in the [`<queries>`](https://developer.android.com/training/package-visibility) element of their `AndroidManifest.xml`.\n\n**If you do not add the corresponding `<queries>` entries, `canOpenUrl(...)` always resolves with `value: false` and `openUrl(...)` may resolve with `completed: false`.**\n\nAdd an entry for **every** package name and URL scheme you pass to the plugin. For example, to check and open the Gmail app (package name `com.google.android.gm`) and any `mailto:` URL, add the following to your `android/app/src/main/AndroidManifest.xml` before or after the `application` tag:\n\n```xml\n<queries>\n    <!-- Required to check and open a specific package name. -->\n    <package android:name=\"com.google.android.gm\" />\n    <!-- Required to check and open a specific URL scheme. -->\n    <intent>\n        <action android:name=\"android.intent.action.VIEW\" />\n        <data android:scheme=\"mailto\" />\n    </intent>\n</queries>\n```\n\n### iOS\n\nOn iOS, every URL scheme you want to check with `canOpenUrl(...)` must be declared in the [`LSApplicationQueriesSchemes`](https://developer.apple.com/documentation/bundleresources/information_property_list/lsapplicationqueriesschemes) key of your app's `Info.plist`.\n\n**If you do not add the corresponding entries, `canOpenUrl(...)` always resolves with `value: false`.**\n\nAdd an entry for **every** URL scheme you pass to the plugin. For example, to check any `mailto:` URL, add the following to your `ios/App/App/Info.plist`:\n\n```xml\n<key>LSApplicationQueriesSchemes</key>\n<array>\n    <string>mailto</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 an app can be opened and open another app.\n\n### Check if an app can be opened\n\nCheck whether an app can be opened before trying to open it. On iOS, the URL must be a URL scheme (e.g. `mailto:`); on Android, it can be a URL scheme or a package name (e.g. `com.google.android.gm`). Remember to declare every scheme and package name you check (see [Installation](#installation)), otherwise this method always resolves with `value: false`:\n\n```typescript\nimport { AppLauncher } from '@capawesome/capacitor-app-launcher';\n\nconst canOpenUrl = async () => {\n  const { value } = await AppLauncher.canOpenUrl({ url: 'mailto:' });\n  return value;\n};\n```\n\n### Open an app\n\nOpen another app with the given URL. On Android, the URL can also be a package name. The result tells you whether the app was opened successfully:\n\n```typescript\nimport { AppLauncher } from '@capawesome/capacitor-app-launcher';\n\nconst openUrl = async () => {\n  const { completed } = await AppLauncher.openUrl({ url: 'mailto:' });\n  return completed;\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`canOpenUrl(...)`](#canopenurl)\n* [`openUrl(...)`](#openurl)\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### canOpenUrl(...)\n\n```typescript\ncanOpenUrl(options: CanOpenUrlOptions) => Promise<CanOpenUrlResult>\n```\n\nCheck if an app can be opened with the given URL.\n\nOn **iOS**, every URL scheme you want to check must be declared in the\n`LSApplicationQueriesSchemes` key of your app's `Info.plist`. Otherwise\nthis method always resolves with `value: false`.\n\nOn **Android**, every package name or URL scheme you want to check must be\ndeclared in the `&lt;queries&gt;` element of your app's `AndroidManifest.xml`.\nOtherwise this method always resolves with `value: false`.\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#canopenurloptions\">CanOpenUrlOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#canopenurlresult\">CanOpenUrlResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### openUrl(...)\n\n```typescript\nopenUrl(options: OpenUrlOptions) => Promise<OpenUrlResult>\n```\n\nOpen an app with the given URL.\n\n| Param         | Type                                                      |\n| ------------- | --------------------------------------------------------- |\n| **`options`** | <code><a href=\"#openurloptions\">OpenUrlOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#openurlresult\">OpenUrlResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### CanOpenUrlResult\n\n| Prop        | Type                 | Description                                                                                                                                                  | Since |\n| ----------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- |\n| **`value`** | <code>boolean</code> | Whether or not the app can be opened with the given URL. On the web, this is always `true` because the browser cannot determine whether a URL can be opened. | 0.1.0 |\n\n\n#### CanOpenUrlOptions\n\n| Prop      | Type                | Description                                                                                                                                                                           | Since |\n| --------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`url`** | <code>string</code> | The URL to check. On **iOS**, this must be a URL scheme (e.g. `mailto:`). On **Android**, this can be a URL scheme (e.g. `mailto:`) or a package name (e.g. `com.google.android.gm`). | 0.1.0 |\n\n\n#### OpenUrlResult\n\n| Prop            | Type                 | Description                                     | Since |\n| --------------- | -------------------- | ----------------------------------------------- | ----- |\n| **`completed`** | <code>boolean</code> | Whether or not the app was opened successfully. | 0.1.0 |\n\n\n#### OpenUrlOptions\n\n| Prop      | Type                | Description                                                                                                                                                                          | Since |\n| --------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- |\n| **`url`** | <code>string</code> | The URL to open. On **iOS**, this must be a URL scheme (e.g. `mailto:`). On **Android**, this can be a URL scheme (e.g. `mailto:`) or a package name (e.g. `com.google.android.gm`). | 0.1.0 |\n\n</docgen-api>\n\n## Migrating from `@capacitor/app-launcher`\n\nThis plugin is a drop-in replacement for the official `@capacitor/app-launcher` plugin. The API is identical, so you only need to change the import and installation.\n\n| `@capacitor/app-launcher`                    | App Launcher                                 |\n| -------------------------------------------- | -------------------------------------------- |\n| `AppLauncher.canOpenUrl({ url })`            | `AppLauncher.canOpenUrl({ url })`            |\n| `AppLauncher.openUrl({ url })`               | `AppLauncher.openUrl({ url })`               |\n\nOn Android, the `url` may be a URL scheme or a package name for both `canOpenUrl(...)` and `openUrl(...)`.\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt lets you both check whether an app can be opened and open it, and on Android the target can be a URL scheme or a package name, so you can launch a specific app like Gmail directly by its package. It uses only official platform APIs, keeping it safe for App Store and Google Play submissions, and pairs cleanly with the Maps Launcher and Settings Launcher plugins for a complete launching story. 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### Why does `canOpenUrl` always return `false`?\n\nThis usually means the URL scheme or package name is not declared in your app. On Android 11 (API level 30) and above, every package name and URL scheme must be declared in the `<queries>` element of your `AndroidManifest.xml`. On iOS, every URL scheme must be declared in the `LSApplicationQueriesSchemes` key of your `Info.plist`. See the [Installation](#installation) section for examples.\n\n### Can I open an app by its package name?\n\nYes, but only on Android, where the `url` option accepts a URL scheme (e.g. `mailto:`) or a package name (e.g. `com.google.android.gm`). On iOS, only URL schemes are supported.\n\n### How can I check if an app is installed?\n\nUse `canOpenUrl(...)` with the app's URL scheme or, on Android, its package name. Make sure the scheme or package name is declared as described in the [Installation](#installation) section. Note that on the Web, this method always resolves with `value: true` because the browser cannot determine whether a URL can be opened.\n\n### How is this plugin different from the official `@capacitor/app-launcher` plugin?\n\nThis plugin is a drop-in replacement with an identical API, so you only need to change the import and installation. In addition, on Android the `url` may also be a package name for both `canOpenUrl(...)` and `openUrl(...)`. See the [migration section](#migrating-from-capacitorapp-launcher) for details.\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- [Android Intent Launcher](https://capawesome.io/docs/sdks/capacitor/android-intent-launcher/): Launch arbitrary Android intents.\n- [Maps Launcher](https://capawesome.io/docs/sdks/capacitor/maps-launcher/): Launch navigation apps with turn-by-turn directions.\n- [Phone Dialer](https://capawesome.io/docs/sdks/capacitor/phone-dialer/): Open the native phone dialer prefilled with a phone number.\n- [Settings Launcher](https://capawesome.io/docs/sdks/capacitor/settings-launcher/): Open native settings screens.\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/app-launcher/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/app-launcher/LICENSE).\n","readmeFilename":"README.md"}