---
description: Capacitor plugin to create app shortcuts on Android and iOS, allowing users to quickly access specific app functionalities.
title: Capacitor App Shortcuts Plugin for Android & iOS - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/app-shortcuts.png
---

<!doctype html> 

[Skip to content ](#capacitor-app-shortcuts-plugin) 

[🖥️ Introducing the **Capacitor Electron Platform** — build desktop apps for macOS, Windows, and Linux. Free & open source. ](/blog/announcing-the-capacitor-electron-platform/) 

* [ SDKs ](/docs/sdks/)
* [ Demo ](#demo)
* [ Usage ](#usage)
* [ API ](#api)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ App Tracking Transparency ](/docs/sdks/capacitor/app-tracking-transparency/)
* [ App Update ](/docs/sdks/capacitor/app-update/)
* [ Apple Sign-In ](/docs/sdks/capacitor/apple-sign-in/)
* [ Asset Manager ](/docs/sdks/capacitor/asset-manager/)
* [ Audio Player ](/docs/sdks/capacitor/audio-player/)
* [ Audio Recorder ](/docs/sdks/capacitor/audio-recorder/)
* [ Audio Session ](/docs/sdks/capacitor/audio-session/)
* [ Background Task ](/docs/sdks/capacitor/background-task/)
* [ Badge ](/docs/sdks/capacitor/badge/)
* [ Barometer ](/docs/sdks/capacitor/barometer/)
* [ Battery ](/docs/sdks/capacitor/battery/)
* [ Biometrics ](/docs/sdks/capacitor/biometrics/)
* [ Bluetooth Low Energy ](/docs/sdks/capacitor/bluetooth-low-energy/)
* [ Clipboard ](/docs/sdks/capacitor/clipboard/)
* [ Cloudinary ](/docs/sdks/capacitor/cloudinary/)
* [ Compass ](/docs/sdks/capacitor/compass/)
* [ Contacts ](/docs/sdks/capacitor/contacts/)
* [ Crisp ](/docs/sdks/capacitor/crisp/)
* [ Datetime Picker ](/docs/sdks/capacitor/datetime-picker/)
* [ Device Info ](/docs/sdks/capacitor/device-info/)
* [ Dialog ](/docs/sdks/capacitor/dialog/)
* [ Electron ](/docs/sdks/capacitor/electron/)
* [ Exif ](/docs/sdks/capacitor/exif/)
* [ Facebook Sign-In ](/docs/sdks/capacitor/facebook-sign-in/)
* [ File Compressor ](/docs/sdks/capacitor/file-compressor/)
* [ File Opener ](/docs/sdks/capacitor/file-opener/)
* [ File Picker ](/docs/sdks/capacitor/file-picker/)
* [ Firebase ](/docs/sdks/capacitor/firebase/)
* [ 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/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ 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 ](/docs/sdks/capacitor/maps-launcher/)
* [ 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/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ 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/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ 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

* [ Demo ](#demo)
* [ Usage ](#usage)
* [ API ](#api)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor App Shortcuts Plugin[¶](#capacitor-app-shortcuts-plugin "Permanent link")

Capacitor plugin to manage app shortcuts and quick actions.

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

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

The App Shortcuts plugin is typically used to give users faster access to key parts of your app right from the home screen icon, for example:

* **Quick actions**: Let users jump directly to frequently used screens such as search, compose, or feedback.
* **Dynamic shortcuts**: Create or update shortcuts at runtime based on user behavior, for example a shortcut to the most recently opened item.
* **Default shortcuts**: Define a set of default shortcuts in your Capacitor configuration without writing any code.
* **Deep linking**: React to shortcut clicks with the `click` listener and navigate the user to the corresponding screen.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 8.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-app-shortcuts` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-app-shortcuts
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

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

| Prop          | Type         | Description                                                                                 | Since |
| ------------- | ------------ | ------------------------------------------------------------------------------------------- | ----- |
| **shortcuts** | Shortcut\[\] | The list of app shortcuts that should be set by default. Only available on Android and iOS. | 7.2.0 |

### Examples[¶](#examples "Permanent link")

In `capacitor.config.json`:

`[](#%5F%5Fcodelineno-3-1){
[](#%5F%5Fcodelineno-3-2)  "plugins": {
[](#%5F%5Fcodelineno-3-3)    "AppShortcuts": {
[](#%5F%5Fcodelineno-3-4)      "shortcuts": [{ id: 'feedback', title: 'Feedback' }]
[](#%5F%5Fcodelineno-3-5)    }
[](#%5F%5Fcodelineno-3-6)  }
[](#%5F%5Fcodelineno-3-7)}
`

In `capacitor.config.ts`:

`[](#%5F%5Fcodelineno-4-1)/// <reference types="@capawesome/capacitor-app-shortcuts" />
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)import { CapacitorConfig } from '@capacitor/cli';
[](#%5F%5Fcodelineno-4-4)
[](#%5F%5Fcodelineno-4-5)const config: CapacitorConfig = {
[](#%5F%5Fcodelineno-4-6)  plugins: {
[](#%5F%5Fcodelineno-4-7)    AppShortcuts: {
[](#%5F%5Fcodelineno-4-8)      shortcuts: [{ id: 'feedback', title: 'Feedback' }],
[](#%5F%5Fcodelineno-4-9)    },
[](#%5F%5Fcodelineno-4-10)  },
[](#%5F%5Fcodelineno-4-11)};
[](#%5F%5Fcodelineno-4-12)
[](#%5F%5Fcodelineno-4-13)export default config;
`

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

On iOS, you must add the following to your app's `AppDelegate.swift`:

`[](#%5F%5Fcodelineno-5-1)+ import CapawesomeCapacitorAppShortcuts
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)@UIApplicationMain
[](#%5F%5Fcodelineno-5-4)class AppDelegate: UIResponder, UIApplicationDelegate {
[](#%5F%5Fcodelineno-5-5)
[](#%5F%5Fcodelineno-5-6)    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
[](#%5F%5Fcodelineno-5-7)+        if let shortcutItem = launchOptions?[.shortcutItem] as? UIApplicationShortcutItem {
[](#%5F%5Fcodelineno-5-8)+            NotificationCenter.default.post(name: NSNotification.Name(AppShortcutsPlugin.notificationName), object: nil, userInfo: [AppShortcutsPlugin.userInfoShortcutItemKey: shortcutItem])
[](#%5F%5Fcodelineno-5-9)+            return true
[](#%5F%5Fcodelineno-5-10)+        }
[](#%5F%5Fcodelineno-5-11)        return true
[](#%5F%5Fcodelineno-5-12)    }
[](#%5F%5Fcodelineno-5-13)
[](#%5F%5Fcodelineno-5-14)+    func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
[](#%5F%5Fcodelineno-5-15)+        NotificationCenter.default.post(name: NSNotification.Name(AppShortcutsPlugin.notificationName), object: nil, userInfo: [AppShortcutsPlugin.userInfoShortcutItemKey: shortcutItem])
[](#%5F%5Fcodelineno-5-16)+        completionHandler(true)
[](#%5F%5Fcodelineno-5-17)+    }
`

## Demo[¶](#demo "Permanent link")

A working example can be found [here](https://github.com/capawesome-team/capacitor-plugins/tree/main/packages/app-shortcuts/example).

| Android | iOS |
| ------- | --- |

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

The following examples show how to create, get, and remove app shortcuts and listen for shortcut clicks.

### Create or update app shortcuts[¶](#create-or-update-app-shortcuts "Permanent link")

Use the `set(...)` method to create or update the app shortcuts. Each shortcut needs a unique identifier and a title. Only available on Android and iOS:

`[](#%5F%5Fcodelineno-6-1)import { AppShortcuts } from '@capawesome/capacitor-app-shortcuts';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const set = async () => {
[](#%5F%5Fcodelineno-6-4)  await AppShortcuts.set({
[](#%5F%5Fcodelineno-6-5)    shortcuts: [
[](#%5F%5Fcodelineno-6-6)      {
[](#%5F%5Fcodelineno-6-7)        id: 'feedback',
[](#%5F%5Fcodelineno-6-8)        title: 'Feedback',
[](#%5F%5Fcodelineno-6-9)        description: 'Send us your feedback',
[](#%5F%5Fcodelineno-6-10)      },
[](#%5F%5Fcodelineno-6-11)      {
[](#%5F%5Fcodelineno-6-12)        id: 'rate',
[](#%5F%5Fcodelineno-6-13)        title: 'Rate',
[](#%5F%5Fcodelineno-6-14)        description: 'Rate our app',
[](#%5F%5Fcodelineno-6-15)      }
[](#%5F%5Fcodelineno-6-16)    ],
[](#%5F%5Fcodelineno-6-17)  });
[](#%5F%5Fcodelineno-6-18)};
`

### Get all app shortcuts[¶](#get-all-app-shortcuts "Permanent link")

Retrieve the list of app shortcuts that are currently set. Only available on Android and iOS:

`[](#%5F%5Fcodelineno-7-1)import { AppShortcuts } from '@capawesome/capacitor-app-shortcuts';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const get = async () => {
[](#%5F%5Fcodelineno-7-4)  const result = await AppShortcuts.get();
[](#%5F%5Fcodelineno-7-5)  return result.shortcuts;
[](#%5F%5Fcodelineno-7-6)};
`

### Remove all app shortcuts[¶](#remove-all-app-shortcuts "Permanent link")

Clear all app shortcuts, for example when the user signs out. Only available on Android and iOS:

`[](#%5F%5Fcodelineno-8-1)import { AppShortcuts } from '@capawesome/capacitor-app-shortcuts';
[](#%5F%5Fcodelineno-8-2)
[](#%5F%5Fcodelineno-8-3)const clear = async () => {
[](#%5F%5Fcodelineno-8-4)  await AppShortcuts.clear();
[](#%5F%5Fcodelineno-8-5)};
`

### Listen for shortcut clicks[¶](#listen-for-shortcut-clicks "Permanent link")

Add a listener for the `click` event to react when the user taps an app shortcut, for example to navigate to the corresponding screen. On iOS, this requires the changes to your `AppDelegate.swift` described in the [iOS configuration](#ios) instructions:

`[](#%5F%5Fcodelineno-9-1)import { AppShortcuts } from '@capawesome/capacitor-app-shortcuts';
[](#%5F%5Fcodelineno-9-2)
[](#%5F%5Fcodelineno-9-3)const addListener = async () => {
[](#%5F%5Fcodelineno-9-4)  AppShortcuts.addListener('click', (event) => {
[](#%5F%5Fcodelineno-9-5)    console.log('Shortcut clicked:', event.id);
[](#%5F%5Fcodelineno-9-6)  });
[](#%5F%5Fcodelineno-9-7)};
`

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

* [clear()](#clear)
* [get()](#get)
* [set(...)](#set)
* [addListener('click', ...)](#addlistenerclick-)
* [removeAllListeners()](#removealllisteners)
* [Interfaces](#interfaces)

### clear()[¶](#clear "Permanent link")

`[](#%5F%5Fcodelineno-10-1)clear() => Promise<void>
`

Remove all app shortcuts.

Only available on Android and iOS.

**Since:** 6.0.0

---

### get()[¶](#get "Permanent link")

`[](#%5F%5Fcodelineno-11-1)get() => Promise<GetResult>
`

Get all app shortcuts.

Only available on Android and iOS.

**Returns:** `Promise<[GetResult](#getresult)>`

**Since:** 6.0.0

---

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

`[](#%5F%5Fcodelineno-12-1)set(options: SetOptions) => Promise<void>
`

Create or update app shortcuts.

Only available on Android and iOS.

| Param       | Type                      |
| ----------- | ------------------------- |
| **options** | [SetOptions](#setoptions) |

**Since:** 6.0.0

---

### addListener('click', ...)[¶](#addlistenerclick "Permanent link")

`[](#%5F%5Fcodelineno-13-1)addListener(eventName: 'click', listenerFunc: (event: ClickEvent) => void) => Promise<PluginListenerHandle>
`

Called when an app shortcut is clicked.

Only available on Android and iOS.

| Param            | Type                                       |
| ---------------- | ------------------------------------------ |
| **eventName**    | 'click'                                    |
| **listenerFunc** | (event: [ClickEvent](#clickevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 6.0.0

---

### removeAllListeners()[¶](#removealllisteners "Permanent link")

`[](#%5F%5Fcodelineno-14-1)removeAllListeners() => Promise<void>
`

Remove all listeners for this plugin.

**Since:** 6.0.0

---

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

#### GetResult[¶](#getresult "Permanent link")

| Prop          | Type         | Description                | Since |
| ------------- | ------------ | -------------------------- | ----- |
| **shortcuts** | Shortcut\[\] | The list of app shortcuts. | 6.0.0 |

#### Shortcut[¶](#shortcut "Permanent link")

| Prop            | Type             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Since |
| --------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **description** | string           | The description. On **Android**, the launcher shows this instead of the short title when it has enough space. **Attention**: On **iOS**, the icon and the description must be used together.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 6.0.0 |
| **id**          | string           | The unique identifier.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 6.0.0 |
| **title**       | string           | The display name.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 6.0.0 |
| **icon**        | string \| number | The icon to display. On **Android**, the icon can be one of the following: - An integer value of the [R.drawable](https://developer.android.com/reference/android/R.drawable) enum (e.g. 17301547). - A string that represents the name of the drawable resource (e.g. "alert\_dark\_frame"). - A base64 encoded image string (e.g. "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QC..."). On **iOS**, the icon can be one of the following: - The constant integer value of the [UIApplicationShortcutIcon.IconType](https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype) enum (e.g. 6). - A system symbol name (e.g. star.fill). - Name of the image asset from the asset catalogue. | 6.1.0 |
| **androidIcon** | string \| number | The icon to display on Android. The icon can be one of the following: - An integer value of the [R.drawable](https://developer.android.com/reference/android/R.drawable) enum (e.g. 17301547). - A string that represents the name of the drawable resource (e.g. "alert\_dark\_frame"). - A base64 encoded image string (e.g. "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QC...").                                                                                                                                                                                                                                                                                                                                 | 7.2.0 |
| **iosIcon**     | string \| number | The icon to display on iOS. The icon can be one of the following: - The constant integer value of the [UIApplicationShortcutIcon.IconType](https://developer.apple.com/documentation/uikit/uiapplicationshortcuticon/icontype) enum (e.g. 6). - A system symbol name (e.g. star.fill). - Name of the image asset from the asset catalogue.                                                                                                                                                                                                                                                                                                                                                                                   | 7.2.0 |

#### SetOptions[¶](#setoptions "Permanent link")

| Prop          | Type         | Description                | Since |
| ------------- | ------------ | -------------------------- | ----- |
| **shortcuts** | Shortcut\[\] | The list of app shortcuts. | 6.0.0 |

#### PluginListenerHandle[¶](#pluginlistenerhandle "Permanent link")

| Prop       | Type                |
| ---------- | ------------------- |
| **remove** | () => Promise<void> |

#### ClickEvent[¶](#clickevent "Permanent link")

| Prop           | Type   | Description                                                 | Since |
| -------------- | ------ | ----------------------------------------------------------- | ----- |
| **shortcutId** | string | The unique identifier of the app shortcut that was clicked. | 6.0.0 |

## FAQ[¶](#faq "Permanent link")

### Which platforms are supported by this plugin?[¶](#which-platforms-are-supported-by-this-plugin "Permanent link")

App shortcuts are a native concept of the Android launcher and the iOS home screen, so the plugin is only available on Android and iOS. All plugin methods and the `click` event are marked as only available on Android and iOS in the [API](#api) section.

### Why is the click listener not called on iOS?[¶](#why-is-the-click-listener-not-called-on-ios "Permanent link")

On iOS, the plugin relies on changes to your app's `AppDelegate.swift` to forward shortcut items to the plugin. Make sure you have applied the code changes described in the [iOS configuration](#ios) instructions. Without them, the `click` event is never delivered.

### Can I define app shortcuts without writing any code?[¶](#can-i-define-app-shortcuts-without-writing-any-code "Permanent link")

Yes, you can use the `shortcuts` configuration option to define a list of app shortcuts that are set by default. See the [Configuration](#configuration) section for examples in `capacitor.config.json` and `capacitor.config.ts`.

### Can I use different icons on Android and iOS?[¶](#can-i-use-different-icons-on-android-and-ios "Permanent link")

Yes, you can use the `androidIcon` and `iosIcon` properties to provide platform-specific icons, or the `icon` property for both platforms. On Android, drawable resources and base64 encoded images are supported, while on iOS you can use system symbol names, asset catalogue images, or `UIApplicationShortcutIcon` types. Note that on iOS, the icon and the description must be used together.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, 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.

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

* [App Icon](https://capawesome.io/docs/sdks/capacitor/app-icon/): Change the app icon at runtime.
* [Badge](https://capawesome.io/docs/sdks/capacitor/badge/): Access and update the badge number of the app icon.

## 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/app-shortcuts/CHANGELOG.md).

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

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

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/#article", "headline": "Capacitor App Shortcuts Plugin for Android & iOS", "name": "Capacitor App Shortcuts Plugin for Android & iOS", "description": "Capacitor plugin to create app shortcuts on Android and iOS, allowing users to quickly access specific app functionalities.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/", "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/app-shortcuts/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/#software", "name": "Capacitor App Shortcuts Plugin for Android & iOS", "description": "Capacitor plugin to create app shortcuts on Android and iOS, allowing users to quickly access specific app functionalities.", "url": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/", "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": "Which platforms are supported by this plugin?", "acceptedAnswer": {"@type": "Answer", "text": "App shortcuts are a native concept of the Android launcher and the iOS home screen, so the plugin is only available on Android and iOS. All plugin methods and the click event are marked as only available on Android and iOS in the API section."}}, {"@type": "Question", "name": "Why is the click listener not called on iOS?", "acceptedAnswer": {"@type": "Answer", "text": "On iOS, the plugin relies on changes to your app's AppDelegate.swift to forward shortcut items to the plugin. Make sure you have applied the code changes described in the iOS configuration instructions. Without them, the click event is never delivered."}}, {"@type": "Question", "name": "Can I define app shortcuts without writing any code?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, you can use the shortcuts configuration option to define a list of app shortcuts that are set by default. See the Configuration section for examples in capacitor.config.json and capacitor.config.ts."}}, {"@type": "Question", "name": "Can I use different icons on Android and iOS?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, you can use the androidIcon and iosIcon properties to provide platform-specific icons, or the icon property for both platforms. On Android, drawable resources and base64 encoded images are supported, while on iOS you can use system symbol names, asset catalogue images, or UIApplicationShortcutIcon types. Note that on iOS, the icon and the description must be used together."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, 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."}}], "url": "https://capawesome.io/docs/sdks/capacitor/app-shortcuts/"}
```
