Skip to content

Getting Started

Terminal window
bun add @capgo/capacitor-intent-launcher
bunx cap sync
import { IntentLauncher } from '@capgo/capacitor-intent-launcher';

Starts an Android activity for the given action.

import { IntentLauncher } from '@capgo/capacitor-intent-launcher';
// Open location settings
const result = await IntentLauncher.startActivityAsync({
action: ActivityAction.LOCATION_SOURCE_SETTINGS
});
// Open a specific app settings
const result = await IntentLauncher.startActivityAsync({
action: ActivityAction.APPLICATION_DETAILS_SETTINGS,
data: 'package:com.example.app'
});

Opens iOS settings screen.

Note: The only officially supported option by Apple is App which opens your app’s settings page. Other options may work but are not guaranteed and could break in future iOS versions or cause App Store rejection.

Also note that the iOS Simulator will sometimes only open the Settings app, instead of the specified option.

import { IntentLauncher } from '@capgo/capacitor-intent-launcher';
// Open app settings (recommended - officially supported by Apple)
await IntentLauncher.openIOSSettings({ option: IOSSettings.App });
// Open WiFi settings (may not work in all iOS versions)
await IntentLauncher.openIOSSettings({ option: IOSSettings.WiFi });

Opens an application by its package name.

import { IntentLauncher } from '@capgo/capacitor-intent-launcher';
// Open Gmail app
await IntentLauncher.openApplication({ packageName: 'com.google.android.gm' });

Gets the application icon as a base64-encoded PNG string.

import { IntentLauncher } from '@capgo/capacitor-intent-launcher';
const { icon } = await IntentLauncher.getApplicationIconAsync({
packageName: 'com.google.android.gm'
});
if (icon) {
const img = document.createElement('img');
img.src = icon;
}

Options for starting an activity.

export interface IntentLauncherParams {
/**
* The action to perform. Use values from `ActivityAction` enum.
*
* @since 1.0.0
*/
action: string;
/**
* Optional category to add to the intent.
*
* @since 1.0.0
*/
category?: string;
/**
* Optional class name for the component to launch.
*
* @since 1.0.0
*/
className?: string;
/**
* Optional URI data for the intent. Must be a valid URI.
*
* @since 1.0.0
*/
data?: string;
/**
* Optional extra data to pass to the intent as key-value pairs.
*
* @since 1.0.0
*/
extra?: Record<string, unknown>;
/**
* Optional intent flags as a bitmask.
*
* @since 1.0.0
*/
flags?: number;
/**
* Optional package name for the component.
*
* @since 1.0.0
*/
packageName?: string;
/**
* Optional MIME type for the intent data.
*
* @since 1.0.0
*/
type?: string;
}

Result from starting an activity.

export interface IntentLauncherResult {
/**
* The result code returned by the activity.
*
* @since 1.0.0
*/
resultCode: ResultCode;
/**
* Optional data URI returned by the activity.
*
* @since 1.0.0
*/
data?: string;
/**
* Optional extra data returned by the activity.
*
* @since 1.0.0
*/
extra?: Record<string, unknown>;
}

Options for opening iOS settings.

export interface IOSSettingsParams {
/**
* The iOS settings screen to open. Use values from `IOSSettings` enum.
*
* @since 8.2.0
*/
option: string;
}

Result from opening iOS settings.

export interface IOSSettingsResult {
/**
* Whether the settings screen was successfully opened.
*
* @since 8.2.0
*/
success: boolean;
}

Options for opening an application.

export interface OpenApplicationOptions {
/**
* The package name of the application to open.
*
* @since 1.0.0
*/
packageName: string;
}

Options for getting an application icon.

export interface GetApplicationIconOptions {
/**
* The package name of the application.
*
* @since 1.0.0
*/
packageName: string;
}

Result from getting an application icon.

export interface GetApplicationIconResult {
/**
* The application icon as a base64-encoded PNG string prefixed with 'data:image/.png;base64,'.
* Empty string if the icon is not available.
*
* @since 1.0.0
*/
icon: string;
}

Result codes returned by activities.

export enum ResultCode {
/**
* The activity completed successfully.
*/
Success = -1,
/**
* The activity was canceled by the user.
*/
Canceled = 0,
/**
* First custom user-defined result code.
*/
FirstUser = 1,
}

This page is generated from the plugin’s src/definitions.ts. Re-run the sync when the public API changes upstream.