quick_actions 0.4.0+2

  • Readme
  • Changelog
  • Example
  • Installing
  • 96

quick_actions #

This Flutter plugin allows you to manage and interact with the application's home screen quick actions.

Quick actions refer to the eponymous concept on iOS and to the App Shortcuts APIs on Android (introduced in Android 7.1 / API level 25). It is safe to run this plugin with earlier versions of Android as it will produce a noop.

Usage in Dart #

Initialize the library early in your application's lifecycle by providing a callback, which will then be called whenever the user launches the app via a quick action.

final QuickActions quickActions = const QuickActions();
quickActions.initialize((shortcutType) {
  if (shortcutType == 'action_main') {
    print('The user tapped on the "Main view" action.');
  // More handling code...

Finally, manage the app's quick actions, for instance:

  const ShortcutItem(type: 'action_main', localizedTitle: 'Main view', icon: 'icon_main'),
  const ShortcutItem(type: 'action_help', localizedTitle: 'Help', icon: 'icon_help')

Please note, that the type argument should be unique within your application (among all the registered shortcut items). The optional icon should be the name of the native resource (xcassets on iOS or drawable on Android) that the app will display for the quick action.

Getting Started #

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

0.4.0+2 #

  • Make the pedantic dev_dependency explicit.

0.4.0+1 #

  • Remove the deprecated author: field from pubspec.yaml
  • Migrate the plugin to the pubspec platforms manifest.
  • Require Flutter SDK 1.10.0 or greater.

0.4.0 #

  • Added missing documentation.
  • Breaking change. channel and withMethodChannel are now @visibleForTesting. These methods are for plugin unit tests only and may be removed in the future.
  • Breaking change. Removed runLaunchAction from public API. This method was not meant to be used by consumers of the plugin.

0.3.3+1 #

  • Update and migrate iOS example project by removing flutter_assets, change "English" to "en", remove extraneous xcconfigs, update to Xcode 11 build settings, and remove ARCHS and DEVELOPMENT_TEAM.

0.3.3 #

  • Support Android V2 embedding.
  • Add e2e tests.
  • Migrate to using the new e2e test binding.

0.3.2+4 #

  • Remove AndroidX warnings.

0.3.2+3 #

  • Define clang module for iOS.

0.3.2+2 #

  • Fix bug that would make the shortcut not open on Android.
  • Report shortcut used on Android.
  • Improves example.

0.3.2+1 #

  • Update usage example in README.

0.3.2 #

  • Fixed the quick actions launch on Android when the app is killed.

0.3.1 #

  • Added unit tests.

0.3.0+2 #

  • Add missing template type parameter to invokeMethod calls.
  • Bump minimum Flutter version to 1.5.0.
  • Replace invokeMethod with invokeMapMethod wherever necessary.

0.3.0+1 #

  • Log a more detailed warning at build time about the previous AndroidX migration.

0.3.0 #

  • Breaking change. Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate if they're using the original support library.

0.2.2 #

  • Allow to register more than once.

0.2.1 #

  • Updated Gradle tooling to match Android Studio 3.1.2.

0.2.0 #

  • Breaking change. Set SDK constraints to match the Flutter beta release.

0.1.1 #

  • Simplified and upgraded Android project template to Android SDK 27.
  • Updated package description.

0.1.0 #

  • Breaking change. Upgraded to Gradle 4.1 and Android Studio Gradle plugin 3.0.1. Older Flutter projects need to upgrade their Gradle setup as well in order to use this version of the plugin. Instructions can be found here.

0.0.2 #

  • Add FLT prefix to iOS types

0.0.1 #

  • Initial release


// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

import 'package:flutter/material.dart';
import 'package:quick_actions/quick_actions.dart';

void main() {

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Quick Actions Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      home: MyHomePage(),

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  _MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {
  String shortcut = "no action set";

  void initState() {

    final QuickActions quickActions = QuickActions();
    quickActions.initialize((String shortcutType) {
      setState(() {
        if (shortcutType != null) shortcut = shortcutType;

      // NOTE: This first action icon will only work on iOS.
      // In a real world project keep the same file name for both platforms.
      const ShortcutItem(
        type: 'action_one',
        localizedTitle: 'Action one',
        icon: 'AppIcon',
      // NOTE: This second action icon will only work on Android.
      // In a real world project keep the same file name for both platforms.
      const ShortcutItem(
          type: 'action_two',
          localizedTitle: 'Action two',
          icon: 'ic_launcher'),

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('$shortcut'),
      body: const Center(
        child: Text('On home screen, long press the app icon to '
            'get Action one or Action two options. Tapping on that action should  '
            'set the toolbar title.'),

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  quick_actions: ^0.4.0+2

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:quick_actions/quick_actions.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Apr 3, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.6
  • Flutter: 1.12.13+hotfix.8


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.28.0 <3.0.0
flutter 0.0.0
meta ^1.0.5 1.1.8
Transitive dependencies
collection 1.14.11 1.14.12
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
e2e ^0.2.0
mockito ^3.0.0
pedantic ^1.8.0
test ^1.3.0