initialize static method
Future<void>
initialize(
{ - dynamic notificationTap(
- Map<String, dynamic>
)?,
})
Implementation
static Future<void> initialize({
Function(Map<String, dynamic>)? notificationTap,
}) async {
handleNotificationTap = notificationTap;
const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
final PackageInfo packageInfo = await PackageInfo.fromPlatform();
InitializationSettings initializationSettings = InitializationSettings(
android: initializationSettingsAndroid,
iOS: const DarwinInitializationSettings(),
macOS: const DarwinInitializationSettings(),
linux: const LinuxInitializationSettings(
defaultActionName: 'Open notification',
),
windows: WindowsInitializationSettings(
appName: packageInfo.appName,
appUserModelId: packageInfo.packageName,
guid: 'a766a91c-e6ee-470f-88f9-cd21d7408541',
),
);
await flutterLocalNotificationsPlugin.initialize(
onDidReceiveNotificationResponse: (NotificationResponse response) async {
debugPrint('Foreground notification tapped: ${response.payload}');
if (response.payload == null || (response.payload?.isEmpty ?? true)) {
return;
}
await UFUtils.preferences.writeString(
UFUtils.preferences.notificationPayload,
jsonEncode(response.payload),
);
handleNotificationTap?.call(
jsonDecode(makeValidJson(response.payload ?? "")),
);
},
onDidReceiveBackgroundNotificationResponse:
onDidReceiveBackgroundNotificationResponse,
settings: initializationSettings,
);
if (_supportsFirebaseMessaging) {
try {
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
debugPrint('Received message: ${message.notification}');
RemoteNotification? notification = message.notification;
if (notification != null) {
_showNotification(
notification.title ?? "No Title",
notification.body ?? "No Body",
message.data,
);
}
// handleNotificationTap?.call(jsonDecode(makeValidJson(message.data.toString())));
});
FirebaseMessaging.onBackgroundMessage(
_firebaseMessagingBackgroundHandler,
);
await requestNotificationPermission();
} catch (e) {
debugPrint('Firebase Messaging not supported on this platform: $e');
}
}
}