58 lines
1.5 KiB
Dart
58 lines
1.5 KiB
Dart
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
|
|
|
class NotificationService {
|
|
static final NotificationService _instance = NotificationService._internal();
|
|
|
|
factory NotificationService() => _instance;
|
|
|
|
NotificationService._internal();
|
|
|
|
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
|
FlutterLocalNotificationsPlugin();
|
|
|
|
Future<void> initializeNotifications() async {
|
|
const androidSettings = AndroidInitializationSettings(
|
|
'@mipmap/ic_launcher',
|
|
);
|
|
|
|
final iosSettings = DarwinInitializationSettings();
|
|
|
|
final initializationSettings = InitializationSettings(
|
|
android: androidSettings,
|
|
iOS: iosSettings,
|
|
);
|
|
|
|
await flutterLocalNotificationsPlugin.initialize(
|
|
settings: initializationSettings,
|
|
);
|
|
}
|
|
|
|
Future<void> showNotification({
|
|
required String title,
|
|
required String body,
|
|
required int badgeCount,
|
|
}) async {
|
|
const androidPlatformChannelSpecifics = AndroidNotificationDetails(
|
|
'marmobile',
|
|
'Marianum Fulda',
|
|
importance: Importance.defaultImportance,
|
|
priority: Priority.defaultPriority,
|
|
ticker: 'Marianum Fulda',
|
|
);
|
|
|
|
const iosPlatformChannelSpecifics = DarwinNotificationDetails();
|
|
|
|
const platformChannelSpecifics = NotificationDetails(
|
|
android: androidPlatformChannelSpecifics,
|
|
iOS: iosPlatformChannelSpecifics,
|
|
);
|
|
|
|
await flutterLocalNotificationsPlugin.show(
|
|
id: 0,
|
|
title: title,
|
|
body: body,
|
|
notificationDetails: platformChannelSpecifics,
|
|
);
|
|
}
|
|
}
|