Mi primer commit
This commit is contained in:
53
lib/notificaciones_service.dart
Normal file
53
lib/notificaciones_service.dart
Normal file
@@ -0,0 +1,53 @@
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
|
||||
class NotificacionesService {
|
||||
// Instancia única (Singleton)
|
||||
static final NotificacionesService _instance = NotificacionesService._internal();
|
||||
factory NotificacionesService() => _instance;
|
||||
NotificacionesService._internal();
|
||||
|
||||
final FlutterLocalNotificationsPlugin _localNotificationsPlugin = FlutterLocalNotificationsPlugin();
|
||||
|
||||
// Inicializa el sistema de alertas del teléfono
|
||||
Future<void> inicializarNotificaciones() async {
|
||||
const AndroidInitializationSettings androidSettings =
|
||||
AndroidInitializationSettings('@mipmap/ic_launcher'); // Icono por defecto de tu app Android
|
||||
|
||||
const InitializationSettings initSettings = InitializationSettings(
|
||||
android: androidSettings,
|
||||
);
|
||||
|
||||
// SOLUCIÓN: En las versiones actuales se debe pasar como argumento con nombre 'settings:'
|
||||
await _localNotificationsPlugin.initialize(
|
||||
initSettings,
|
||||
// Si en un futuro necesitas reaccionar cuando el usuario presiona la notificación:
|
||||
// onDidReceiveNotificationResponse: (NotificationResponse response) { ... }
|
||||
);
|
||||
}
|
||||
// Método genérico para disparar la alerta nativa en Android/iOS
|
||||
Future<void> mostrarNotificacionPush({
|
||||
required int id,
|
||||
required String titulo,
|
||||
required String mensaje,
|
||||
}) async {
|
||||
const AndroidNotificationDetails androidDetails = AndroidNotificationDetails(
|
||||
'canal_alertas_operativas', // ID del canal
|
||||
'Alertas Operativas Camión', // Nombre del canal visible para el usuario
|
||||
channelDescription: 'Avisos de rutas, aproximaciones e imprevistos mecánicos',
|
||||
importance: Importance.max,
|
||||
priority: Priority.high,
|
||||
playSound: true,
|
||||
);
|
||||
|
||||
const NotificationDetails platformDetails = NotificationDetails(
|
||||
android: androidDetails,
|
||||
);
|
||||
|
||||
await _localNotificationsPlugin.show(
|
||||
id,
|
||||
titulo,
|
||||
mensaje,
|
||||
platformDetails,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user