---
description: Capacitor plugin to launch navigation apps like Google Maps, Apple Maps, and Waze with turn-by-turn directions on Android and iOS.
title: Capacitor Maps Launcher Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/maps-launcher.png
---

<!doctype html> 

[Skip to content ](#capacitor-maps-launcher-plugin) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ 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/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ 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 [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Enums ](#enums)
* [ Platform Support ](#platform-support)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ 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/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ 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/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ 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/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ 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/)
* [ 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/)
* 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)
* [ Type Aliases ](#type-aliases)
* [ Enums ](#enums)
* [ Platform Support ](#platform-support)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Maps Launcher Plugin[¶](#capacitor-maps-launcher-plugin "Permanent link")

Capacitor plugin to launch navigation apps with turn-by-turn directions.

[ ![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")

* 🧭 **Navigate**: Launch a navigation app with turn-by-turn directions to a destination.
* 🗺️ **Curated apps**: Support for Google Maps, Apple Maps (iOS) and Waze.
* 📍 **Coordinates & addresses**: Navigate to coordinates or a plain address.
* 🚗 **Travel modes**: Choose between driving, walking, bicycling and transit (best-effort per app).
* ✅ **Availability**: Check which navigation apps are installed and can be launched.
* 📦 **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!

## 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/).

## 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-maps-launcher` 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-maps-launcher
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

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

The plugin declares the required [package visibility](https://developer.android.com/training/package-visibility) `<queries>` for Google Maps and Waze in its own `AndroidManifest.xml`. No additional configuration is required.

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

#### Application Queries Schemes[¶](#application-queries-schemes "Permanent link")

To detect and launch Google Maps and Waze, the following URL schemes must be added to the `LSApplicationQueriesSchemes` array in the `Info.plist` file of your app. Without them, `getAvailableApps(...)` reports those apps as unavailable and `navigate(...)` rejects with the `APP_NOT_AVAILABLE` error code.

`[](#%5F%5Fcodelineno-3-1)<key>LSApplicationQueriesSchemes</key>
[](#%5F%5Fcodelineno-3-2)<array>
[](#%5F%5Fcodelineno-3-3)  <string>comgooglemaps</string>
[](#%5F%5Fcodelineno-3-4)  <string>waze</string>
[](#%5F%5Fcodelineno-3-5)</array>
`

Apple Maps is always available and does not require any configuration.

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

No configuration required for this plugin.

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

`[](#%5F%5Fcodelineno-4-1)import { MapsLauncher, NavigationApp } from '@capawesome/capacitor-maps-launcher';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const getAvailableApps = async () => {
[](#%5F%5Fcodelineno-4-4)  const { apps } = await MapsLauncher.getAvailableApps();
[](#%5F%5Fcodelineno-4-5)  return apps;
[](#%5F%5Fcodelineno-4-6)};
[](#%5F%5Fcodelineno-4-7)
[](#%5F%5Fcodelineno-4-8)const getDefaultApp = async () => {
[](#%5F%5Fcodelineno-4-9)  const { app } = await MapsLauncher.getDefaultApp();
[](#%5F%5Fcodelineno-4-10)  return app;
[](#%5F%5Fcodelineno-4-11)};
[](#%5F%5Fcodelineno-4-12)
[](#%5F%5Fcodelineno-4-13)const navigate = async () => {
[](#%5F%5Fcodelineno-4-14)  await MapsLauncher.navigate({
[](#%5F%5Fcodelineno-4-15)    destination: {
[](#%5F%5Fcodelineno-4-16)      latitude: 37.3349,
[](#%5F%5Fcodelineno-4-17)      longitude: -122.009,
[](#%5F%5Fcodelineno-4-18)    },
[](#%5F%5Fcodelineno-4-19)    app: NavigationApp.GoogleMaps,
[](#%5F%5Fcodelineno-4-20)    travelMode: 'driving',
[](#%5F%5Fcodelineno-4-21)  });
[](#%5F%5Fcodelineno-4-22)};
[](#%5F%5Fcodelineno-4-23)
[](#%5F%5Fcodelineno-4-24)const navigateToAddress = async () => {
[](#%5F%5Fcodelineno-4-25)  await MapsLauncher.navigate({
[](#%5F%5Fcodelineno-4-26)    destination: {
[](#%5F%5Fcodelineno-4-27)      address: 'Apple Park, Cupertino, CA',
[](#%5F%5Fcodelineno-4-28)    },
[](#%5F%5Fcodelineno-4-29)  });
[](#%5F%5Fcodelineno-4-30)};
`

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

* [getAvailableApps()](#getavailableapps)
* [getDefaultApp()](#getdefaultapp)
* [navigate(...)](#navigate)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)
* [Enums](#enums)

### getAvailableApps()[¶](#getavailableapps "Permanent link")

`[](#%5F%5Fcodelineno-5-1)getAvailableApps() => Promise<GetAvailableAppsResult>
`

Get the navigation apps that are installed and can be launched.

On iOS, Apple Maps is always included. Google Maps and Waze are only included if the corresponding `LSApplicationQueriesSchemes` entries are added to the `Info.plist` file of your app.

Only available on Android and iOS.

**Returns:** `Promise<[GetAvailableAppsResult](#getavailableappsresult)>`

**Since:** 0.1.0

---

### getDefaultApp()[¶](#getdefaultapp "Permanent link")

`[](#%5F%5Fcodelineno-6-1)getDefaultApp() => Promise<GetDefaultAppResult>
`

Get the navigation app that is configured as the default handler for navigation intents.

Returns `null` if the default app is not part of the curated list of supported apps or if no default app is set (i.e. the system shows a chooser).

Only available on Android.

**Returns:** `Promise<[GetDefaultAppResult](#getdefaultappresult)>`

**Since:** 0.1.0

---

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

`[](#%5F%5Fcodelineno-7-1)navigate(options: NavigateOptions) => Promise<void>
`

Launch a navigation app with turn-by-turn directions to a destination.

If no `app` is provided, the system default behavior is used (a chooser on Android, Apple Maps on iOS).

Only available on Android and iOS.

| Param       | Type                                |
| ----------- | ----------------------------------- |
| **options** | [NavigateOptions](#navigateoptions) |

**Since:** 0.1.0

---

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

#### GetAvailableAppsResult[¶](#getavailableappsresult "Permanent link")

| Prop     | Type              | Description                                                 | Since |
| -------- | ----------------- | ----------------------------------------------------------- | ----- |
| **apps** | NavigationApp\[\] | The navigation apps that are installed and can be launched. | 0.1.0 |

#### GetDefaultAppResult[¶](#getdefaultappresult "Permanent link")

| Prop    | Type                                    | Description                                                                                                                                                                  | Since |
| ------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **app** | [NavigationApp](#navigationapp) \| null | The navigation app that is configured as the default handler. Returns null if the default app is not part of the curated list of supported apps or if no default app is set. | 0.1.0 |

#### NavigateOptions[¶](#navigateoptions "Permanent link")

| Prop            | Type                            | Description                                                                                                                                                                                                                                                                               | Default   | Since |
| --------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----- |
| **app**         | [NavigationApp](#navigationapp) | The navigation app to launch. If not provided, the system default behavior is used (a chooser on Android, Apple Maps on iOS).                                                                                                                                                             |           | 0.1.0 |
| **destination** | [Destination](#destination)     | The destination to navigate to.                                                                                                                                                                                                                                                           |           | 0.1.0 |
| **start**       | [Destination](#destination)     | The start location of the route. If not provided, the current location of the device is used. **Note**: The support depends on the selected app. Apple Maps supports it fully, Google Maps opens the directions preview instead of starting turn-by-turn navigation, and Waze ignores it. |           | 0.1.0 |
| **travelMode**  | [TravelMode](#travelmode)       | The travel mode to use for the directions. **Note**: The support depends on the selected app and is best-effort. Waze only supports driving and ignores this option.                                                                                                                      | 'driving' | 0.1.0 |

#### Destination[¶](#destination "Permanent link")

A destination is either defined by its coordinates or by its address, but not both.

| Prop          | Type   | Description                                                                                    | Since |
| ------------- | ------ | ---------------------------------------------------------------------------------------------- | ----- |
| **address**   | string | The address of the destination. Must be provided without latitude and longitude.               | 0.1.0 |
| **latitude**  | number | The latitude of the destination. Must be provided together with longitude and without address. | 0.1.0 |
| **longitude** | number | The longitude of the destination. Must be provided together with latitude and without address. | 0.1.0 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### TravelMode[¶](#travelmode "Permanent link")

The travel mode to use for the directions.

* `driving`: Driving directions.
* `walking`: Walking directions.
* `bicycling`: Bicycling directions.
* `transit`: Public transit directions.

`'driving' | 'walking' | 'bicycling' | 'transit'`

### Enums[¶](#enums "Permanent link")

#### NavigationApp[¶](#navigationapp "Permanent link")

| Members        | Value        | Description                        | Since |
| -------------- | ------------ | ---------------------------------- | ----- |
| **AppleMaps**  | 'appleMaps'  | Apple Maps. Only available on iOS. | 0.1.0 |
| **GoogleMaps** | 'googleMaps' | Google Maps.                       | 0.1.0 |
| **Waze**       | 'waze'       | Waze.                              | 0.1.0 |

## Platform Support[¶](#platform-support "Permanent link")

The behavior of the `navigate(...)` method depends on the selected app and platform. Keep the following in mind:

### Start location[¶](#start-location "Permanent link")

| App         | start support                                                                                     |
| ----------- | ------------------------------------------------------------------------------------------------- |
| Apple Maps  | Full support.                                                                                     |
| Google Maps | Supported, but opens the directions preview instead of starting turn-by-turn navigation directly. |
| Waze        | Not supported. The option is ignored.                                                             |

If `start` is not provided, the current location of the device is used.

### Travel mode[¶](#travel-mode "Permanent link")

| App         | driving | walking | bicycling | transit |
| ----------- | ------- | ------- | --------- | ------- |
| Apple Maps  | ✅       | ✅       | ❌         | ✅       |
| Google Maps | ✅       | ✅       | ✅         | ✅       |
| Waze        | ✅       | ❌       | ❌         | ❌       |

Unsupported travel modes fall back to the default behavior of the respective app. Waze only supports driving and ignores the `travelMode` option.

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

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

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

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

July 7, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/#article", "headline": "Capacitor Maps Launcher Plugin", "name": "Capacitor Maps Launcher Plugin", "description": "Capacitor plugin to launch navigation apps like Google Maps, Apple Maps, and Waze with turn-by-turn directions on Android and iOS.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/", "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/maps-launcher/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/#software", "name": "Capacitor Maps Launcher Plugin", "description": "Capacitor plugin to launch navigation apps like Google Maps, Apple Maps, and Waze with turn-by-turn directions on Android and iOS.", "url": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/", "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"}}}]}
```
