Add package flutter_local_notifications: to pubspec.yaml.
Add a icons to android/app/src/main/res/drawable/icon.png this will show in notification.
Notification service class
class NotificationServices { final notificationPlugin = FlutterLocalNotificationsPlugin(); void initNotification() async { var initializationSettingsAndroid = const AndroidInitializationSettings( 'nagalay_logo', ); var initializationSettingsIOS = DarwinInitializationSettings( requestAlertPermission: true, requestBadgePermission: true, requestSoundPermission: true, onDidReceiveLocalNotification: (id, title, body, payload) async {}, ); var initializationSettings = InitializationSettings( android: initializationSettingsAndroid, iOS: initializationSettingsIOS, ); await notificationPlugin.initialize( initializationSettings, onDidReceiveNotificationResponse: (payload) async { 'onDidReceiveNotificationResponse'.log(); }, ); } NotificationDetails notificationDetails() { return const NotificationDetails( android: AndroidNotificationDetails( 'channel id', 'channel name', importance: Importance.max, ), iOS: DarwinNotificationDetails(), ); } Future showNotification({ required int id, required String title, required String body, String? payload, }) async { return notificationPlugin.show( 0, title, body, notificationDetails(), ); } }
Go to ios/Runner/AppDelegate.swift
import UIKit import Flutter import GoogleMaps import flutter_local_notifications @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("AIzaSyAEt4fldofQ7rUz8z4FgtzmSRjFPuZMbrY") FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in GeneratedPluginRegistrant.register(with: registry) } GeneratedPluginRegistrant.register(with: self) if #available(iOS 10.0, *) { UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate } return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
Add the red code.
Thats it. Now whenever you need to show a notification just call showNotfication();