39 lines
1.0 KiB
Dart
39 lines
1.0 KiB
Dart
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
|
|
|
class LocalNotificationService {
|
|
LocalNotificationService._();
|
|
static final LocalNotificationService instance = LocalNotificationService._();
|
|
|
|
final FlutterLocalNotificationsPlugin _plugin =
|
|
FlutterLocalNotificationsPlugin();
|
|
bool _inited = false;
|
|
|
|
Future<void> init() async {
|
|
if (_inited) return;
|
|
const settings = InitializationSettings(
|
|
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
|
|
);
|
|
await _plugin.initialize(settings);
|
|
_inited = true;
|
|
}
|
|
|
|
Future<void> show({
|
|
required int id,
|
|
required String title,
|
|
required String body,
|
|
}) async {
|
|
await init();
|
|
const details = NotificationDetails(
|
|
android: AndroidNotificationDetails(
|
|
'consultation_channel',
|
|
'Konsultasi Ahli Gizi',
|
|
channelDescription: 'Notifikasi pesan konsultasi',
|
|
importance: Importance.high,
|
|
priority: Priority.high,
|
|
),
|
|
);
|
|
await _plugin.show(id, title, body, details);
|
|
}
|
|
}
|
|
|