TKK_E32232282/Source Code Mobile/notification_service.dart

43 lines
1.4 KiB
Dart

import 'package:flutter_local_notifications/flutter_local_notifications.dart';
class NotificationService {
static final FlutterLocalNotificationsPlugin _plugin =
FlutterLocalNotificationsPlugin();
static const AndroidNotificationChannel _channel = AndroidNotificationChannel(
'air_quality_channel',
'Kualitas Udara',
description: 'Notifikasi sistem monitoring kualitas udara & AC otomatis',
importance: Importance.high,
playSound: true,
);
static Future<void> initialize() async {
const androidInit = AndroidInitializationSettings('@mipmap/ic_launcher');
const initSettings = InitializationSettings(android: androidInit);
await _plugin.initialize(initSettings);
final androidPlugin = _plugin.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>();
await androidPlugin?.createNotificationChannel(_channel);
await androidPlugin?.requestNotificationsPermission();
}
static Future<void> showNotification({
required String title,
required String body,
int id = 0,
}) async {
final androidDetails = AndroidNotificationDetails(
_channel.id,
_channel.name,
channelDescription: _channel.description,
importance: Importance.high,
priority: Priority.high,
icon: '@mipmap/ic_launcher',
);
final notifDetails = NotificationDetails(android: androidDetails);
await _plugin.show(id, title, body, notifDetails);
}
}