update notificacion web
This commit is contained in:
+7
-4
@@ -26,7 +26,9 @@ import 'firebase_options.dart';
|
|||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
await Firebase.initializeApp(
|
||||||
|
options: DefaultFirebaseOptions.currentPlatform,
|
||||||
|
).then((value) => Get.put(AuthenticationRepository()));
|
||||||
await initNotifications();
|
await initNotifications();
|
||||||
|
|
||||||
await initializeDateFormatting('es_MX', null);
|
await initializeDateFormatting('es_MX', null);
|
||||||
@@ -35,12 +37,13 @@ void main() async {
|
|||||||
DeviceOrientation.portraitUp,
|
DeviceOrientation.portraitUp,
|
||||||
DeviceOrientation.portraitDown,
|
DeviceOrientation.portraitDown,
|
||||||
]);
|
]);
|
||||||
await Firebase.initializeApp(
|
|
||||||
options: DefaultFirebaseOptions.currentPlatform,
|
|
||||||
).then((value) => Get.put(AuthenticationRepository()));
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class MyApp extends StatelessWidget {
|
class MyApp extends StatelessWidget {
|
||||||
const MyApp({super.key});
|
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:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
|
import 'package:prosappco/src/services/firebase_messaging.dart';
|
||||||
|
|
||||||
|
|
||||||
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
||||||
FlutterLocalNotificationsPlugin();
|
FlutterLocalNotificationsPlugin();
|
||||||
|
|
||||||
Future<void> initNotifications() async {
|
Future<void> initNotifications() async {
|
||||||
const AndroidInitializationSettings initializationSettingsAndroid =
|
const AndroidInitializationSettings initializationSettingsAndroid =
|
||||||
AndroidInitializationSettings('@mipmap/ic_launcher');
|
AndroidInitializationSettings('@mipmap/ic_launcher');
|
||||||
|
|
||||||
const InitializationSettings initializationSettings = InitializationSettings(
|
const InitializationSettings initializationSettings = InitializationSettings(
|
||||||
android: initializationSettingsAndroid,
|
android: initializationSettingsAndroid,
|
||||||
);
|
);
|
||||||
|
|
||||||
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
||||||
|
|
||||||
|
// Inicializar Firebase Messaging
|
||||||
|
FirebaseMessagingService firebaseMessagingService = FirebaseMessagingService();
|
||||||
|
await firebaseMessagingService.initializeFirebaseMessaging();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> showNotification(String title, String body) async {
|
Future<void> showNotification(String title, String body) async {
|
||||||
const AndroidNotificationDetails androidNotificationDetails =
|
const AndroidNotificationDetails androidNotificationDetails =
|
||||||
AndroidNotificationDetails('your channel id', 'your channel name',
|
AndroidNotificationDetails('solicitud_servicio', 'Solicitud de Servicio',
|
||||||
importance: Importance.max, priority: Priority.high);
|
importance: Importance.max, priority: Priority.high);
|
||||||
|
|
||||||
const NotificationDetails notificationDetails =
|
const NotificationDetails notificationDetails =
|
||||||
NotificationDetails(android: androidNotificationDetails);
|
NotificationDetails(android: androidNotificationDetails);
|
||||||
|
|
||||||
await flutterLocalNotificationsPlugin.show(
|
await flutterLocalNotificationsPlugin.show(
|
||||||
1, title, body, notificationDetails);
|
1, title, body, notificationDetails);
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
importScripts("https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js");
|
||||||
|
importScripts("https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js");
|
||||||
|
|
||||||
|
firebase.initializeApp({
|
||||||
|
apiKey: "AIzaSyCNpUV_4cMEL9QZx7NESXK7QAlRjRGwx_Y",
|
||||||
|
authDomain: "prosapp-5747a.firebaseapp.com",
|
||||||
|
databaseURL: "https://prosapp-5747a-default-rtdb.firebaseio.com",
|
||||||
|
projectId: "prosapp-5747a",
|
||||||
|
storageBucket: "prosapp-5747a.appspot.com",
|
||||||
|
messagingSenderId: "245204384533",
|
||||||
|
appId: "1:245204384533:web:1b8f0b4c1d9ae21d9f871c",
|
||||||
|
});
|
||||||
|
|
||||||
|
const messaging = firebase.messaging();
|
||||||
|
|
||||||
|
// Optional:
|
||||||
|
messaging.onBackgroundMessage((message) => {
|
||||||
|
console.log("onBackgroundMessage", message);
|
||||||
|
});
|
||||||
+21
-14
@@ -40,20 +40,27 @@
|
|||||||
<script src="flutter.js" defer></script>
|
<script src="flutter.js" defer></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
window.addEventListener('load', function(ev) {
|
window.addEventListener('load', function(ev) {
|
||||||
// Download main.dart.js
|
// Download main.dart.js
|
||||||
_flutter.loader.loadEntrypoint({
|
_flutter.loader.loadEntrypoint({
|
||||||
serviceWorker: {
|
serviceWorker: {
|
||||||
serviceWorkerVersion: serviceWorkerVersion,
|
serviceWorkerVersion: serviceWorkerVersion,
|
||||||
},
|
},
|
||||||
onEntrypointLoaded: function(engineInitializer) {
|
onEntrypointLoaded: function(engineInitializer) {
|
||||||
engineInitializer.initializeEngine().then(function(appRunner) {
|
engineInitializer.initializeEngine().then(function(appRunner) {
|
||||||
appRunner.runApp();
|
appRunner.runApp();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
|
||||||
});
|
});
|
||||||
</script>
|
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
// Service workers are supported. Use them.
|
||||||
|
navigator.serviceWorker.register('/firebase-messaging-sw.js');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user