update notificacion web
This commit is contained in:
+7
-4
@@ -26,7 +26,9 @@ import 'firebase_options.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
await Firebase.initializeApp(
|
||||
options: DefaultFirebaseOptions.currentPlatform,
|
||||
).then((value) => Get.put(AuthenticationRepository()));
|
||||
await initNotifications();
|
||||
|
||||
await initializeDateFormatting('es_MX', null);
|
||||
@@ -35,12 +37,13 @@ void main() async {
|
||||
DeviceOrientation.portraitUp,
|
||||
DeviceOrientation.portraitDown,
|
||||
]);
|
||||
await Firebase.initializeApp(
|
||||
options: DefaultFirebaseOptions.currentPlatform,
|
||||
).then((value) => Get.put(AuthenticationRepository()));
|
||||
|
||||
|
||||
|
||||
runApp(const MyApp());
|
||||
}
|
||||
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({super.key});
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
|
||||
class FirebaseMessagingService {
|
||||
FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;
|
||||
|
||||
Future<void> initializeFirebaseMessaging() async {
|
||||
// Solicitar permisos de notificación si es necesario (opcional)
|
||||
NotificationSettings settings = await _firebaseMessaging.requestPermission(
|
||||
alert: true,
|
||||
badge: true,
|
||||
sound: true,
|
||||
);
|
||||
|
||||
// Verificar si los permisos de notificación están habilitados
|
||||
if (settings.authorizationStatus == AuthorizationStatus.authorized ||
|
||||
settings.authorizationStatus == AuthorizationStatus.provisional) {
|
||||
// Obtener el token de registro para la instancia de la aplicación
|
||||
String? token = await _firebaseMessaging.getToken();
|
||||
print('Token FCM: $token');
|
||||
|
||||
// Escuchar los mensajes entrantes en la aplicación
|
||||
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
||||
print('Mensaje FCM recibido: ${message.notification?.title} - ${message.notification?.body}');
|
||||
// Aquí puedes mostrar la notificación o procesar los datos recibidos según tus necesidades
|
||||
});
|
||||
|
||||
// Manejar la notificación cuando se toca y la aplicación está en primer plano (opcional)
|
||||
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
|
||||
print('Mensaje FCM abierto desde la aplicación en primer plano: ${message.notification?.title} - ${message.notification?.body}');
|
||||
// Aquí puedes redirigir al usuario a una pantalla específica o realizar acciones según los datos recibidos
|
||||
});
|
||||
|
||||
// Manejar la notificación cuando se toca y la aplicación está cerrada (opcional)
|
||||
RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage();
|
||||
if (initialMessage != null) {
|
||||
print('Mensaje FCM abierto desde la aplicación cerrada: ${initialMessage.notification?.title} - ${initialMessage.notification?.body}');
|
||||
// Aquí puedes redirigir al usuario a una pantalla específica o realizar acciones según los datos recibidos
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,32 @@
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:prosappco/src/services/firebase_messaging.dart';
|
||||
|
||||
|
||||
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
||||
FlutterLocalNotificationsPlugin();
|
||||
FlutterLocalNotificationsPlugin();
|
||||
|
||||
Future<void> initNotifications() async {
|
||||
const AndroidInitializationSettings initializationSettingsAndroid =
|
||||
AndroidInitializationSettings('@mipmap/ic_launcher');
|
||||
AndroidInitializationSettings('@mipmap/ic_launcher');
|
||||
|
||||
const InitializationSettings initializationSettings = InitializationSettings(
|
||||
android: initializationSettingsAndroid,
|
||||
);
|
||||
|
||||
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
||||
|
||||
// Inicializar Firebase Messaging
|
||||
FirebaseMessagingService firebaseMessagingService = FirebaseMessagingService();
|
||||
await firebaseMessagingService.initializeFirebaseMessaging();
|
||||
}
|
||||
|
||||
Future<void> showNotification(String title, String body) async {
|
||||
const AndroidNotificationDetails androidNotificationDetails =
|
||||
AndroidNotificationDetails('your channel id', 'your channel name',
|
||||
importance: Importance.max, priority: Priority.high);
|
||||
AndroidNotificationDetails('solicitud_servicio', 'Solicitud de Servicio',
|
||||
importance: Importance.max, priority: Priority.high);
|
||||
|
||||
const NotificationDetails notificationDetails =
|
||||
NotificationDetails(android: androidNotificationDetails);
|
||||
NotificationDetails(android: androidNotificationDetails);
|
||||
|
||||
await flutterLocalNotificationsPlugin.show(
|
||||
1, title, body, notificationDetails);
|
||||
|
||||
Reference in New Issue
Block a user