카테고리 없음

flutter notification 중복 알림 문제

백봉 2024. 12. 24. 15:34

 

포어그라운드에서..

AOS는 포어그라운드 알림 설정만으로 알림이 안간다. onMessage에서 Local Notification을 호출해야 알림이 간다. 

IOS는 포어그라운드 알림 설정만으로 알림이 간다. onMessage에서 Local Notification을 이용할 경우

FirebaseMessaging 에서 한번, onMessage에서 한번 알림이 간다. 

즉, IOS는 알림이 중복으로 간다. 

await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
      alert: true,
      badge: true,
      sound: true,
);

FirebaseMessaging.onMessage.listen((RemoteMessage message) {      
  if (Platform.isAndroid) {
    showNotification(message.notification?.title ?? 'No Title', message.notification?.body ?? 'No body', message.data);
  }
});

Future<void> showNotification(String title, String body, Map<String, dynamic> payload) async {
	const AndroidNotificationDetails androidDetails = AndroidNotificationDetails(
  	'high_importance_channel',
  	'High Importance Notifications',
  	channelDescription: 'This channel is used for important notifications.',
  	importance: Importance.max,
	);
	const DarwinNotificationDetails iOSDetails = DarwinNotificationDetails(
  	presentAlert: true,
  	presentBadge: true,
  	presentSound: true,
	);
	const NotificationDetails platformDetails = NotificationDetails(android: androidDetails, iOS: iOSDetails);
	await flutterLocalNotificationsPlugin.show(DateTime.now().millisecondsSinceEpoch.remainder(100000), title, body, platformDetails, payload: jsonEncode(payload));
}

 

이상적인 해결책은 아닐것같지만

AOS일때만 showNotification을 호출하는것으로 변경해서 해결...