Ich schlage meinen Kopf. Ich implementiere eine Push-Benachrichtigung. Alles funktioniert einwandfrei (Push wird empfangen, Badge wird aktualisiert), aber unter iOS 13.3 wird die Methodenanwendung (_: didReceiveRemoteNotification: fetchCompletionHandler :) nicht aufgerufen, wenn sich die App im Hintergrund befindet. Wenn sich die App im Vordergrund befindet oder ein iOS 12-Gerät verwendet, wird die Methode aufgerufen. Ich registriere mich wie folgt für die Push-Benachrichtigung:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
Die Nutzlast ist wie folgt eingestellt
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
Ich habe versucht, "Remote-Benachrichtigungen" und "Hintergrundverarbeitung" als App-Funktionen in allen Varianten hinzuzufügen (nur "Remote-Benachrichtigungen" / "Hintergrundverarbeitung", ohne eine dieser Funktionen, die beide aktivieren), ohne Änderungen vorzunehmen. Ich habe den Delegaten für das UNUserNotificationCenter festgelegt, aber wieder ohne Erfolg. Ich setze die Header entsprechend:
curl -v \
-H 'apns-priority: 4' \
-H 'apns-topic: xx.xxxxx.xxxx' \
-H 'apns-push-type: alert' \
-H 'Content-Type: application/json; charset=utf-8' \
-d '{"aps": {"badge": 10,"alert": "test", "content-available":1}}' \
--http2 \
--cert pushcert.pem \
https://api.sandbox.push.apple.com/3/device/1234567890
Aus den Dokumenten geht hervor, dass diese Methode auch dann aufgerufen wird, wenn sich die App im Hintergrund befindet:
Verwenden Sie diese Methode, um eingehende Remote-Benachrichtigungen für Ihre App zu verarbeiten. Im Gegensatz zur Methode application: didReceiveRemoteNotification:, die nur aufgerufen wird, wenn Ihre App im Vordergrund ausgeführt wird, ruft das System diese Methode auf, wenn Ihre App im Vordergrund oder Hintergrund ausgeführt wird.
Was fehlt mir hier für iOS 13?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
Methode zu implementieren ?