v1.3.0flutter_shortcuts
홈 화면에 정적 및 동적 앱/대화 단축키를 생성하기 위한 플러터 플러그인입니다.
홈 화면에 정적 및 동적 앱 바로가기를 생성하기 위한 Flutter 플러그인입니다.
{"sdk":"flutter"}^2.0.0{"sdk":"flutter"}^1.11.0아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
GitHub GitHub code size in bytes GitHub top language GitHub language count GitHub tag (latest by date) GitHub issues GitHub Repo stars GitHub forks
✅ Android
❌ iOS (active issue: iOS support for quick actions)
Flutter Shortcuts Plugin is known for :
| Flutter Shortcuts |
|---|
| Fast, performant & compatible |
| Free & Open-source |
| Production ready |
| Make App Reactive |
All the features listed below can be performed at the runtime.
✅ Create Shortcuts
✅ Clear Shortcuts
✅ Update Shortcuts
✅ Conversation Shortcuts
✅ Use both flutter and android asset as shortcut icon
| https://i.imgur.com/UPcyPEl.gif |
|---|
dependencies:
flutter_shortcuts: <latest version>
Run pub get and get packages.
final FlutterShortcuts flutterShortcuts = FlutterShortcuts();
flutterShortcuts.initialize(debug: true);
flutterShortcuts.listenAction((String incomingAction) {
setState(() {
if (incomingAction != null) {
action = incomingAction;
}
});
});
Return the maximum number of static and dynamic shortcuts that each launcher icon can have at a time.
int? result = await flutterShortcuts.getMaxShortcutLimit();
Flutter Shortcuts allows you to create shortcut icon from both android drawable or mipmap and flutter Assets.
drawable or mipmap.use: ShortcutIconAsset.androidAsset
ShortcutItem(
id: "2",
action: 'Bookmark page action',
shortLabel: 'Bookmark Page',
icon: "ic_launcher",
shortcutIconAsset: ShortcutIconAsset.androidAsset,
),
use: ShortcutIconAsset.flutterAsset
ShortcutItem(
id: "2",
action: 'Bookmark page action',
shortLabel: 'Bookmark Page',
icon: 'assets/icons/bookmark.png',
shortcutIconAsset: ShortcutIconAsset.flutterAsset,
),
Publishes the list of shortcuts. All existing shortcuts will be replaced.
flutterShortcuts.setShortcutItems(
shortcutItems: <ShortcutItem>[
const ShortcutItem(
id: "1",
action: 'Home page action',
shortLabel: 'Home Page',
icon: 'assets/icons/home.png',
),
const ShortcutItem(
id: "2",
action: 'Bookmark page action',
shortLabel: 'Bookmark Page',
icon: "ic_launcher",
shortcutIconAsset: ShortcutIconAsset.androidAsset,
),
],
),
Delete all dynamic shortcuts from the app.
flutterShortcuts.clearShortcutItems();
Push a new shortcut item. If there is already a dynamic or pinned shortcut with the same ID, the shortcut will be updated and pushed at the end of the shortcut list.
flutterShortcuts.pushShortcutItem(
shortcut: ShortcutItem(
id: "5",
action: "Play Music Action",
shortLabel: "Play Music",
icon: 'assets/icons/music.png',
),
);
Pushes a list of shortcut item. If there is already a dynamic or pinned shortcut with the same ID, the shortcut will be updated and pushed at the end of the shortcut list.
flutterShortcuts.pushShortcutItems(
shortcutList: <ShortcutItem>[
const ShortcutItem(
id: "1",
action: 'Home page new action',
shortLabel: 'Home Page',
icon: 'assets/icons/home.png',
),
const ShortcutItem(
id: "2",
action: 'Bookmark page new action',
shortLabel: 'Bookmark Page',
icon: 'assets/icons/bookmark.png',
),
const ShortcutItem(
id: "3",
action: 'Settings Action',
shortLabel: 'Setting',
icon: 'assets/icons/settings.png',
),
],
);
Updates a single shortcut item based on id. If the ID of the shortcut is not same, no changes will be reflected.
flutterShortcuts.updateShortcutItem(
shortcut: ShortcutItem(
id: "1",
action: 'Go to url action',
shortLabel: 'Visit Page',
icon: 'assets/icons/url.png',
),
);
Updates shortcut items. If the IDs of the shortcuts are not same, no changes will be reflected.
flutterShortcuts.updateShortcutItems(
shortcutList: <ShortcutItem>[
const ShortcutItem(
id: "1",
action: 'Resume playing Action',
shortLabel: 'Resume playing',
icon: 'assets/icons/play.png',
),
const ShortcutItem(
id: "2",
action: 'Search Songs Action',
shortLabel: 'Search Songs',
icon: 'assets/icons/search.png',
),
],
);
Set conversationShortcut: true in ShortcutItem to make the shortcut as conversation shortcut.
The conversation shortcut can also be set as important and bot by setting isImportant: true & isBot: true.
await flutterShortcuts.pushShortcutItems(
shortcutList: <ShortcutItem>[
const ShortcutItem(
id: "1",
action: 'open_chat_1',
shortLabel: 'Divyanshu Shekhar',
icon: 'assets/icons/home.png',
conversationShortcut: true,
isImportant: true,
),
const ShortcutItem(
id: "2",
action: 'oepn_chat_2',
shortLabel: 'Subham Praharaj',
icon: 'assets/icons/bookmark.png',
conversationShortcut: true,
),
const ShortcutItem(
id: "3",
action: 'oepn_chat_3',
shortLabel: 'Auto Reply Bot',
icon: 'assets/icons/url.png',
conversationShortcut: true,
isBot: true,
),
],
);
Change the icon of the shortcut based on id. If the ID of the shortcut is not same, no changes will be reflected.
flutterShortcuts.changeShortcutItemIcon(
id: "2",
icon: "assets/icons/next.png",
);
Get the icon properties of your shortcut icon.
Map<String, int> result = await flutterShortcuts.getIconProperties();
print( "maxHeight: ${result["maxHeight"]}, maxWidth: ${result["maxWidth"]}");
https://github.com/aritraroy/social-icons/blob/master/twitter-icon.png?raw=true https://github.com/aritraroy/social-icons/blob/master/linkedin-icon.png?raw=true https://github.com/aritraroy/social-icons/blob/master/instagram-icon.png?raw=true
https://github.com/aritraroy/social-icons/blob/master/twitter-icon.png?raw=true https://github.com/aritraroy/social-icons/blob/master/linkedin-icon.png?raw=true https://github.com/aritraroy/social-icons/blob/master/instagram-icon.png?raw=true
Contributions are welcomed!
If you feel that a hook is missing, feel free to open a pull-request.
For a custom-hook to be merged, you will need to do the following:
Describe the use-case.
Open an issue explaining why we need this hook, how to use it, ... This is important as a hook will not get merged if the hook doens't appeal to a large number of people.
If your hook is rejected, don't worry! A rejection doesn't mean that it won't be merged later in the future if more people shows an interest in it. In the mean-time, feel free to publish your hook as a package on https://pub.dev.
A hook will not be merged unles fully tested, to avoid breaking it inadvertendly in the future.
Stargazers repo roster for @DevsOnFlutter/flutter_shortcuts
Forkers repo roster for @DevsOnFlutter/flutter_shortcuts
Code and documentation Copyright (c) 2021 Divyanshu Shekhar. Code released under the BSD 3-Clause License.