Wir senden die Nachrichten, für die wir eine Bestätigung benötigen, im Wesentlichen wie folgt:
Code: Select all
final var apnsConfig =
ApnsConfig.builder()
.setAps(Aps.builder().setContentAvailable(true).build())
.putAllHeaders(Map.of("apns-push-type", "background", "apns-priority", "5"))
.putCustomData("customDataKey", "customDataValue")
.build();
final var multicastMessageBuilder =
MulticastMessage.builder()
.setApnsConfig(apnsConfig)
.addAllTokens(
fcmEntities.stream()
.map(FcmMessageEntity::getFcmRegistrationToken)
.toList());
multicastMessageBuilder.putAllData(
Map.of(
"notificationTitle",
notificationTitle,
"notificationBody",
notificationBody));
final var batchResponse =
FirebaseMessaging.getInstance(firebaseService.getFirebaseApp())
.sendEachForMulticast(multicastMessageBuilder.build());

„Regelmäßige“ (sichtbare) Benachrichtigungen werden einwandfrei zugestellt.
Wir verwenden Capacitor und sein PushNotifications-Plugin, falls das relevant ist.
Was übersehen wir/machen wir falsch?
Wir haben versucht, es zu deaktivieren der FirebaseAppDelegateProxy, wie in einigen Suchergebnissen vorgeschlagen, war jedoch erfolglos.
Wir haben auch versucht, UNUserNotificationCenterDelegate zu unserem AppDelegate hinzuzufügen, was dazu führte didReceiveRemoteNotification wird nur für sichtbare Benachrichtigungen aufgerufen, während die App im Vordergrund ist.