Skip to content

A Capacitor plugin that allows you to use the Quick Actions API on iOS/iPadOS

Notifications You must be signed in to change notification settings

LukasAndreano/capacitor-quick-actions

Repository files navigation

Capacitor Quick Actions

Plugin for using Quick Actions in your Capacitor Apps.
Now it supports only on iOS/iPadOS 13+.

Install

npm install capacitor-quick-actions
npx cap sync

Preparation

Modify your AppDelegate.swift:

  1. Add import CapacitorQuickActions to the top of the file.
  2. Add application function to the bottom of the file:
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
        let handled = QuickActions.handleQuickAction(shortcutItem)
        completionHandler(handled)
}

Example of the AppDelegate.swift file available here.

Usage

// Import the plugin
import { QuickActions } from 'capacitor-quick-actions';

// Add buttons to the home screen
const addButtonsToHomeScreen = async () => {
    await QuickActions.addQuickActions({
        actions: [
            { id: "button1", title: 'Action1', iconName: 'house', description: 'Description1' },
            { id: "button2", title: 'Action2', iconName: '2' } // Description is optional
        ]
    });
}

// Remove buttons from the home screen
const clearButtonsFromHomeScreen = async () => {
    await QuickActions.clearQuickActions();
}

// Add Listener for the selected action
QuickActions.addListener('quickActionSelected', (data) => {
    console.log('Quick Action selected:', data.type); // returns id of the selected action
});

Icons

To use icons in your quick actions provide the name of the icon from this app.

API

addQuickActions(...)

addQuickActions(options: { actions: QuickAction[]; }) => Promise<void>
Param Type
options { actions: QuickAction[]; }

clearQuickActions()

clearQuickActions() => Promise<void>

addListener('quickActionSelected', ...)

addListener(eventName: 'quickActionSelected', listenerFunc: (data: { type: string; }) => void) => PluginListenerHandle
Param Type
eventName 'quickActionSelected'
listenerFunc (data: { type: string; }) => void

Returns: PluginListenerHandle


Interfaces

QuickAction

Prop Type
id string
title string
iconName string
description string

PluginListenerHandle

Prop Type
remove () => Promise<void>