import 'package:flutter/cupertino.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class Notifications { static FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin; static void init(BuildContext context) async { flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('notify'); final IOSInitializationSettings initializationSettingsIOS = IOSInitializationSettings( onDidReceiveLocalNotification: onDidReceiveLocalNotification); final MacOSInitializationSettings initializationSettingsMacOS = MacOSInitializationSettings(); final InitializationSettings initializationSettings = InitializationSettings( android: initializationSettingsAndroid, iOS: initializationSettingsIOS, macOS: initializationSettingsMacOS); await flutterLocalNotificationsPlugin.initialize( initializationSettings, onSelectNotification: selectNotification); } static Future onDidReceiveLocalNotification (int id, String title, String body, String payload) async { final bool result = await flutterLocalNotificationsPlugin .resolvePlatformSpecificImplementation< IOSFlutterLocalNotificationsPlugin>() ?.requestPermissions( alert: true, badge: true, sound: true, ); } static Future selectNotification(String payload) async { // if (payload != null) { // Events.fire(NotifyMessage(payload)); // } else { // print("get notify"); // } } static Future showNotify(String title, String body, { String payload }) async { const AndroidNotificationDetails androidPlatformChannelSpecifics = AndroidNotificationDetails( 'your channel id', 'your channel name', 'your channel description', importance: Importance.max, priority: Priority.high, showWhen: false); const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics); return await flutterLocalNotificationsPlugin.show( 0, title, body, platformChannelSpecifics, payload: payload); } }