Je me tape la tête. J'implémente la notification push. Tout fonctionne bien (push est reçu, le badge est mis à jour) mais sous iOS 13.3 l'application de méthode (_: didReceiveRemoteNotification: fetchCompletionHandler :) n'est pas appelée lorsque l'application est en arrière-plan. Si l'application est au premier plan ou utilise un appareil iOS 12, la méthode est appelée. Je m'inscris pour la notification push de la manière suivante:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
La charge utile est définie comme suit
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
J'ai essayé d'ajouter "Notifications à distance" et "Traitement en arrière-plan" comme capacités d'application dans toutes les variantes (uniquement "Notifications à distance" / "Traitement en arrière-plan", sans aucune de ces capacités, permettant les deux) sans aucune modification. J'ai placé le délégué pour l'UNUserNotificationCenter mais encore une fois sans succès. J'ai défini les en-têtes en conséquence:
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
D'après les documents, il indique que cette méthode est appelée même lorsque l'application est en arrière-plan:
Utilisez cette méthode pour traiter les notifications distantes entrantes pour votre application. Contrairement à la méthode application: didReceiveRemoteNotification:, qui est appelée uniquement lorsque votre application s'exécute au premier plan, le système appelle cette méthode lorsque votre application s'exécute au premier plan ou en arrière-plan.
Qu'est-ce que je manque ici pour iOS 13?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
méthode?