Kafamı vuruyorum. Push bildirimi uyguluyorum. Her şey iyi çalışıyor (push alındı, rozet güncellendi), ancak iOS 13.3 altında, uygulama arka planda olduğunda uygulama uygulaması (_: didReceiveRemoteNotification: fetchCompletionHandler :) çağrılmaz. Uygulama ön plandaysa veya bir iOS 12 cihazı kullanılıyorsa yöntem çağrılır. Push bildirimi için şu şekilde kayıt oluyorum:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
Yük kapasitesi aşağıdaki gibi ayarlanmıştır
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
"Uzaktan bildirimler" ve "Arka plan işleme" özelliklerini tüm varyasyonlarda (yalnızca "Uzaktan bildirimler" / "Arka plan işleme", bu özelliklerin hiçbiri olmadan, her ikisini de etkinleştirmeden) eklemeyi denedim. UNUserNotificationCenter temsilcisini ayarladım ama yine başarılı olamadım. Başlıkları buna göre ayarladım:
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
Dokümanlar'dan, uygulama arka planda olsa bile bu yöntemin çağrıldığını belirtir:
Uygulamanız için gelen uzak bildirimleri işlemek üzere bu yöntemi kullanın. Yalnızca uygulamanız ön planda çalışırken çağrılan uygulama: didReceiveRemoteNotification: yönteminin aksine, uygulamanız ön planda veya arka planda çalışırken sistem bu yöntemi çağırır.
İOS 13 için burada ne eksik?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
Yöntemi uygulayarak denediniz mi?