Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Plugins | 16,786 | 1,556 | 615 | a month ago | 58 | June 06, 2022 | 1 | bsd-3-clause | Dart | |
Plugins for Flutter maintained by the Flutter team | ||||||||||
Flutter Desktop Embedding | 7,078 | 6 | 2 months ago | 10 | August 18, 2022 | 3 | apache-2.0 | C++ | ||
Experimental plugins for Flutter for Desktop | ||||||||||
Flutter Ui Nice | 3,388 | a year ago | 7 | Dart | ||||||
More than 130+ pages in this beautiful app and more than 45 developers has contributed to it. | ||||||||||
Figmatocode | 2,870 | a month ago | 23 | gpl-3.0 | TypeScript | |||||
Generate responsive pages and apps on HTML, Tailwind, Flutter and SwiftUI. | ||||||||||
Sqflite | 2,587 | 799 | 139 | 11 days ago | 125 | September 19, 2022 | 142 | bsd-2-clause | Dart | |
SQLite flutter plugin | ||||||||||
Flutter_inappwebview | 2,446 | 1 | 46 | 3 days ago | 51 | May 05, 2022 | 685 | apache-2.0 | Dart | |
A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window. | ||||||||||
Flutter Study | 2,254 | 3 years ago | 5 | |||||||
Flutter Study | ||||||||||
Flutter_local_notifications | 2,166 | 108 | 52 | 5 days ago | 221 | September 23, 2022 | 44 | bsd-3-clause | Dart | |
A Flutter plugin for displaying local notifications on Android, iOS, macOS and Linux | ||||||||||
Flutter Intellij | 1,859 | 2 days ago | 517 | bsd-3-clause | Java | |||||
Flutter Plugin for IntelliJ | ||||||||||
Cloudbase Framework | 1,827 | 21 | 6 months ago | 130 | August 23, 2022 | 37 | other | JavaScript | ||
腾讯云开发云原生一体化部署工具 🚀 CloudBase Framework:一键部署,不限框架语言,云端一体化开发,基于Serverless 架构。A front-end and back-end integrated deployment tool. One-click deploy to serverless architecture. https://docs.cloudbase.net/framework/index |
⛔️ DEPRECATED ⛔️
This package is not longer maintained. Please write message or GitHub issue if you want to take it over and end deprecated state.
Plugin to implement APNS push notifications on iOS and Firebase on Android.
Currently, the only available push notification plugin is firebase_messaging
. This means that, even on iOS, you will need to setup firebase and communicate with Google to send push notification. This plugin solves the problem by providing native APNS implementation while leaving configured Firebase for Android.
Configure firebase on Android according to instructions: https://pub.dartlang.org/packages/firebase_messaging.
On iOS, make sure you have correctly configured your app to support push notifications, and that you have generated certificate/token for sending pushes. For more infos see section How to run example app on iOS
Add the following lines to the didFinishLaunchingWithOptions
method in the AppDelegate.m/AppDelegate.swift file of your iOS project
Objective-C:
if (@available(iOS 10.0, *)) {
[UNUserNotificationCenter currentNotificationCenter].delegate = (id<UNUserNotificationCenterDelegate>) self;
}
Swift:
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
flutter_apns
as a dependency in your pubspec.yaml file.createPushConnector()
method, configure push service according to your needs. PushConnector
closely resembles FirebaseMessaging
, so Firebase samples may be useful during implementation. You should create the connector as soon as possible to get the onLaunch callback working on closed app launch.import 'package:flutter_apns/apns.dart';
final connector = createPushConnector();
connector.configure(
onLaunch: _onLaunch,
onResume: _onResume,
onMessage: _onMessage,
);
connector.requestNotificationPermissions()
final connector = createPushConnector();
if (connector is ApnsPushConnector) {
connector.shouldPresent = (x) => Future.value(true);
}
Firstly, configure supported actions:
final connector = createPushConnector();
if (connector is ApnsPushConnector) {
connector.setNotificationCategories([
UNNotificationCategory(
identifier: 'MEETING_INVITATION',
actions: [
UNNotificationAction(
identifier: 'ACCEPT_ACTION',
title: 'Accept',
options: [],
),
UNNotificationAction(
identifier: 'DECLINE_ACTION',
title: 'Decline',
options: [],
),
],
intentIdentifiers: [],
options: [],
),
]);
}
Then, handle possible actions in your push handler:
Future<dynamic> onPush(String name, RemoteMessage payload) {
final action = UNNotificationAction.getIdentifier(payload.data);
if (action == 'MEETING_INVITATION') {
// do something
}
return Future.value(true);
}
Note: if user clickes your notification while app is in the background, push will be delivered through onResume without actually waking up the app. Make sure your handling of given action is quick and error free, as execution time in for apps running in the background is very limited.
Check the example project for fully working code.
If you want to use firebase, but not firebase messaging, add this configuration entry in your Info.plist (to avoid MissingPluginException):
<key>flutter_apns.disable_firebase_core</key>
<false/>
If only care about apns - use flutter_apns_only plugin. It does not depend on firebase. To ensure no swizzling (which is needed by original plugin to disable firebase) takes place, add this configuration entry in your Info.plist:
<key>flutter_apns.disable_swizzling</key>
<true/>
swift
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
NSLog("PUSH registration failed: \(error)")
}
}
objc
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"%@", error);
}
@end
Setting up push notifications on iOS can be tricky since there is no way to permit Apple Push Notification Service (APNS) which requires a complicated certificate setup. The following guide describes a step by step approach to send push notifications from your Mac to an iPhone utilizing the example app of this package. This guide only describes debug environment setup.
openssl pkcs12 -in flutterApns.p12 -out flutterApns.pem -nodes -clcerts
curl -v \
-d '{"aps":{"alert":"<your_message>","badge":2}}' \
-H "apns-topic: <bundle_identifier_of_registered_app>" \
-H "apns-priority: 10" \
--http2 \
--cert <file_path_to_downloaded_signed_and_converted_certificate>.pem \
https://api.development.push.apple.com/3/device/<device_token>
When not utilizing the example app, you need to additionally setup push notification capability inside Xcode and add the code mentioned in usage.