Skip to main content

cordova-plugin-launch-navigator Alternative for Capacitor

cordova-plugin-launch-navigator alternative for Capacitor: open Apple Maps, Google Maps or Waze with @capgo/capacitor-launch-navigator and coordinate-based navigation.

Illustration of migrating a Cordova app to Capacitor, used for a launch navigator guide

If you need a cordova-plugin-launch-navigator alternative (or the equivalent uk.co.workingedge.phonegap.plugin.launchnavigator Cordova package), use @capgo/capacitor-launch-navigator. The Capgo README describes it as a Capacitor port of phonegap-launch-navigator, opening turn-by-turn apps from [latitude, longitude] pairs with promises instead of launchnavigator.navigate callbacks. This guide covers maintenance facts, install steps, a coordinate-only example, and an API map.

Why migrate from PhoneGap Launch Navigator

The historic npm id is uk.co.workingedge.phonegap.plugin.launchnavigator version 5.0.7, last modified 3 December 2024 on npm. The related cordova-plugin-launch-navigator package is at 13.20.0, modified 27 October 2026. Source and issues live at dpa99c/phonegap-launch-navigator.

The Cordova plugin fits Cordova lifecycle:

  • launchnavigator.navigate("London, UK") geocodes free-form addresses on Android through Google’s Geocoding API, which required a GOOGLE_API_KEY_FOR_ANDROID install variable.
  • Callbacks such as launchnavigator.availableApps(function(results){...}) instead of promises.
  • Installation with cordova plugin add uk.co.workingedge.phonegap.plugin.launchnavigator.

@capgo/capacitor-launch-navigator aligns with Capacitor 8 and documents coordinates-only navigation. That removes embedded geocoding and API key handling from the navigation plugin itself. Geocode with @capgo/capacitor-nativegeocoder when users type addresses. Capgo maintains the port with the same open source workflow where a human still reviews, tests and merges 50+ pull requests daily.

Install

bun add @capgo/capacitor-launch-navigator
bunx cap sync

iOS: add LSApplicationQueriesSchemes for each navigation app you detect, for example comgooglemaps, waze, and citymapper, following the list in the README.

Android: the README states no extra manifest work is required because package queries merge from the plugin AAR.

Usage example

import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';

export async function openDirectionsToStore(lat: number, lng: number) {
  const { apps } = await LaunchNavigator.getAvailableApps();
  const preferred = apps.find((a) => a.id === 'google_maps') ?? apps[0];

  await LaunchNavigator.navigate({
    destination: [lat, lng],
    options: { app: preferred?.id ?? 'user_select' },
  });
}

When users enter a street address, geocode first:

import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';

const { addresses } = await NativeGeocoder.forwardGeocode({ addressString: '1 Market St, San Francisco' });
const first = addresses[0];
await LaunchNavigator.navigate({ destination: [first.latitude, first.longitude] });

Migrating from Cordova to Capacitor

Replace the global launchnavigator object with LaunchNavigator imports. Convert address strings to coordinates before navigate().

API mapping table

uk.co.workingedge.phonegap.plugin.launchnavigator @capgo/capacitor-launch-navigator
launchnavigator.navigate(dest, options) navigate({ destination: [lat, lng], options })
launchnavigator.navigate("lat, lng", { start: "..." }) navigate({ destination, options: { start: [lat, lng] } })
options.app = launchnavigator.APP.GOOGLE_MAPS options: { app: 'google_maps' }
launchnavigator.APP.USER_SELECT app: 'user_select'
launchnavigator.isAppAvailable(app, cb) isAppAvailable({ app })
launchnavigator.availableApps(cb) getAvailableApps()
launchnavigator.getAppsForPlatform(platform) getSupportedApps()
launchnavigator.getAppDisplayName(app) AvailableApp.name from getAvailableApps()
Address string destinations forwardGeocode() via @capgo/capacitor-nativegeocoder
setApiKey(key) for Android geocoding Not needed on Capgo navigation plugin
enableDebug() Use Capacitor WebView logging during development

Capgo adds getDefaultApp(), getAppIcons(), refreshAppIcons(), and clearIconCache() for custom app chooser UIs. PhoneGap app id aliases such as garmin_navigon and here remain accepted per the README.

After you add iOS query schemes, ship a native build through Capgo Build. JavaScript chooser flows can iterate with live updates. Full platform migration: migrating Cordova to Capacitor.

Live updates for Capacitor apps

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Latest from our Blog

Capgo gives you the best insights you need to create a truly professional mobile app.