---
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 **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/)
* [ 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/)
* [ 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 [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Enums ](#enums)
* [ Platform Support ](#platform-support)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ 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/)
* [ 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/)
* [ 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)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ 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!

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

The Maps Launcher plugin is typically used whenever an app wants to hand the user over to a navigation app, for example:

* **Store locators**: Add a "Get directions" button that starts turn-by-turn navigation to a store or office.
* **Delivery and field service**: Launch navigation to the next stop using its coordinates.
* **Event apps**: Navigate attendees to a venue by its plain address, without needing coordinates.
* **User choice**: Detect which navigation apps are installed with `getAvailableApps` and let users pick their favorite one.

## 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")

The following examples show how to get the available and default navigation apps and how to navigate to coordinates or an address.

### Get the available navigation apps[¶](#get-the-available-navigation-apps "Permanent link")

Check which navigation apps are installed and can be launched. On iOS, Apple Maps is always included, while Google Maps and Waze are only included if the corresponding URL schemes are declared in your `Info.plist` file (see [Installation](#installation)). Only available on Android and iOS:

`[](#%5F%5Fcodelineno-4-1)import { MapsLauncher } 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)};
`

### Get the default navigation app[¶](#get-the-default-navigation-app "Permanent link")

Find out which navigation app 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. Only available on Android:

`[](#%5F%5Fcodelineno-5-1)import { MapsLauncher } from '@capawesome/capacitor-maps-launcher';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const getDefaultApp = async () => {
[](#%5F%5Fcodelineno-5-4)  const { app } = await MapsLauncher.getDefaultApp();
[](#%5F%5Fcodelineno-5-5)  return app;
[](#%5F%5Fcodelineno-5-6)};
`

### Navigate to coordinates[¶](#navigate-to-coordinates "Permanent link")

Launch a navigation app with turn-by-turn directions to a destination defined by its latitude and longitude. You can optionally specify the app to launch and the travel mode:

`[](#%5F%5Fcodelineno-6-1)import { MapsLauncher, NavigationApp } from '@capawesome/capacitor-maps-launcher';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const navigate = async () => {
[](#%5F%5Fcodelineno-6-4)  await MapsLauncher.navigate({
[](#%5F%5Fcodelineno-6-5)    destination: {
[](#%5F%5Fcodelineno-6-6)      latitude: 37.3349,
[](#%5F%5Fcodelineno-6-7)      longitude: -122.009,
[](#%5F%5Fcodelineno-6-8)    },
[](#%5F%5Fcodelineno-6-9)    app: NavigationApp.GoogleMaps,
[](#%5F%5Fcodelineno-6-10)    travelMode: 'driving',
[](#%5F%5Fcodelineno-6-11)  });
[](#%5F%5Fcodelineno-6-12)};
`

### Navigate to an address[¶](#navigate-to-an-address "Permanent link")

Instead of coordinates, you can also pass a plain address as the destination. If no `app` is provided, the system default behavior is used (a chooser on Android, Apple Maps on iOS):

`[](#%5F%5Fcodelineno-7-1)import { MapsLauncher } from '@capawesome/capacitor-maps-launcher';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const navigateToAddress = async () => {
[](#%5F%5Fcodelineno-7-4)  await MapsLauncher.navigate({
[](#%5F%5Fcodelineno-7-5)    destination: {
[](#%5F%5Fcodelineno-7-6)      address: 'Apple Park, Cupertino, CA',
[](#%5F%5Fcodelineno-7-7)    },
[](#%5F%5Fcodelineno-7-8)  });
[](#%5F%5Fcodelineno-7-9)};
`

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

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

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

`[](#%5F%5Fcodelineno-8-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-9-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-10-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**  | 'APPLE\_MAPS'  | Apple Maps. Only available on iOS. | 0.1.0 |
| **GoogleMaps** | 'GOOGLE\_MAPS' | 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.

## 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 launches turn-by-turn navigation in Google Maps, Apple Maps, and Waze from a single fully typed API, accepting either coordinates or a plain address and supporting driving, walking, bicycling, and transit modes. It also detects which navigation apps are installed and, on Android, which one is the default handler, so you can let users pick their favorite. Per-app behavior is documented transparently, and the plugin is actively maintained against the latest Capacitor and OS versions across Android and iOS.

### Why are Google Maps and Waze reported as unavailable on iOS?[¶](#why-are-google-maps-and-waze-reported-as-unavailable-on-ios "Permanent link")

To detect and launch Google Maps and Waze on iOS, the `comgooglemaps` and `waze` 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. See the [Installation](#installation) section for details.

### What happens if I do not specify a navigation app?[¶](#what-happens-if-i-do-not-specify-a-navigation-app "Permanent link")

If no `app` is provided, the system default behavior is used: Android shows a chooser and iOS opens Apple Maps. On Android, you can use `getDefaultApp` to find out which supported navigation app is configured as the default handler.

### Which travel modes are supported?[¶](#which-travel-modes-are-supported "Permanent link")

The plugin supports the `driving`, `walking`, `bicycling`, and `transit` travel modes, but the support depends on the selected app and is best-effort. Google Maps supports all four modes, Apple Maps does not support bicycling, and Waze only supports driving and ignores the option. Unsupported travel modes fall back to the default behavior of the respective app.

### Can I set a custom start location for the route?[¶](#can-i-set-a-custom-start-location-for-the-route "Permanent link")

Yes, use the `start` option of the `navigate` method. However, 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. If no start location is provided, the current location of the device is used.

### Does the plugin work on the web?[¶](#does-the-plugin-work-on-the-web "Permanent link")

No, the `getAvailableApps` and `navigate` methods are only available on Android and iOS, and `getDefaultApp` is only available on Android. Launching installed navigation apps is a native capability that is not available in the browser.

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

* [App Launcher](https://capawesome.io/docs/sdks/capacitor/app-launcher/): Check if an app can be opened and open it.
* [Geocoder](https://capawesome.io/docs/sdks/capacitor/geocoder/): Convert addresses into coordinates and vice versa.
* [Android Intent Launcher](https://capawesome.io/docs/sdks/capacitor/android-intent-launcher/): Launch arbitrary Android intents.

## 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/maps-launcher/CHANGELOG.md).

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

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

July 8, 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"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this plugin different from other similar plugins?", "acceptedAnswer": {"@type": "Answer", "text": "It launches turn-by-turn navigation in Google Maps, Apple Maps, and Waze from a single fully typed API, accepting either coordinates or a plain address and supporting driving, walking, bicycling, and transit modes. It also detects which navigation apps are installed and, on Android, which one is the default handler, so you can let users pick their favorite. Per-app behavior is documented transparently, and the plugin is actively maintained against the latest Capacitor and OS versions across Android and iOS."}}, {"@type": "Question", "name": "Why are Google Maps and Waze reported as unavailable on iOS?", "acceptedAnswer": {"@type": "Answer", "text": "To detect and launch Google Maps and Waze on iOS, the comgooglemaps and waze 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. See the Installation section for details."}}, {"@type": "Question", "name": "What happens if I do not specify a navigation app?", "acceptedAnswer": {"@type": "Answer", "text": "If no app is provided, the system default behavior is used: Android shows a chooser and iOS opens Apple Maps. On Android, you can use getDefaultApp to find out which supported navigation app is configured as the default handler."}}, {"@type": "Question", "name": "Which travel modes are supported?", "acceptedAnswer": {"@type": "Answer", "text": "The plugin supports the driving, walking, bicycling, and transit travel modes, but the support depends on the selected app and is best-effort. Google Maps supports all four modes, Apple Maps does not support bicycling, and Waze only supports driving and ignores the option. Unsupported travel modes fall back to the default behavior of the respective app."}}, {"@type": "Question", "name": "Can I set a custom start location for the route?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, use the start option of the navigate method. However, 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. If no start location is provided, the current location of the device is used."}}, {"@type": "Question", "name": "Does the plugin work on the web?", "acceptedAnswer": {"@type": "Answer", "text": "No, the getAvailableApps and navigate methods are only available on Android and iOS, and getDefaultApp is only available on Android. Launching installed navigation apps is a native capability that is not available in the browser."}}], "url": "https://capawesome.io/docs/sdks/capacitor/maps-launcher/"}
```
