43 lines
1.5 KiB
Dart
43 lines
1.5 KiB
Dart
// src/services/notification_service.dart
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
|
|
|
class NotificationService {
|
|
static final FlutterLocalNotificationsPlugin _notifications = FlutterLocalNotificationsPlugin();
|
|
|
|
static Future<void> initialize() async {
|
|
const AndroidInitializationSettings androidSettings = AndroidInitializationSettings('@mipmap/ic_launcher');
|
|
const DarwinInitializationSettings iosSettings = DarwinInitializationSettings();
|
|
const InitializationSettings settings = InitializationSettings(
|
|
android: androidSettings,
|
|
iOS: iosSettings,
|
|
);
|
|
await _notifications.initialize(settings);
|
|
}
|
|
|
|
static Future<void> showNotification({
|
|
required String title,
|
|
required String body,
|
|
String? payload,
|
|
}) async {
|
|
const AndroidNotificationDetails androidDetails = AndroidNotificationDetails(
|
|
'recoleccion_channel',
|
|
'Notificaciones de Recolección',
|
|
channelDescription: 'Notificaciones sobre el estado de la recolección',
|
|
importance: Importance.high,
|
|
priority: Priority.high,
|
|
);
|
|
const DarwinNotificationDetails iosDetails = DarwinNotificationDetails();
|
|
const NotificationDetails details = NotificationDetails(
|
|
android: androidDetails,
|
|
iOS: iosDetails,
|
|
);
|
|
await _notifications.show(
|
|
DateTime.now().millisecond,
|
|
title,
|
|
body,
|
|
details,
|
|
payload: payload,
|
|
);
|
|
}
|
|
} |