Я бью себя по голове. Я внедряю push-уведомления. Все работает нормально (push-уведомление получено, значок обновлен), но в iOS 13.3 приложение метода (_: didReceiveRemoteNotification: fetchCompletionHandler :) не вызывается, когда приложение находится в фоновом режиме. Если приложение находится на переднем плане или использует устройство iOS 12, вызывается метод. Я регистрируюсь для push-уведомлений следующим образом:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
Полезная нагрузка установлена на следующее
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
Я попытался добавить «Удаленные уведомления» и «Фоновая обработка» в качестве возможностей приложения во всех вариантах (только «Удаленные уведомления» / «Фоновая обработка», без каких-либо из этих возможностей, включающих оба) без каких-либо изменений. Я назначил делегата для UNUserNotificationCenter, но снова безуспешно. Я установил заголовки соответственно:
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
Из документов говорится, что этот метод вызывается, даже когда приложение находится в фоновом режиме:
Используйте этот метод для обработки входящих удаленных уведомлений для вашего приложения. В отличие от метода application: didReceiveRemoteNotification:, который вызывается только тогда, когда ваше приложение выполняется на переднем плане, система вызывает этот метод, когда ваше приложение работает на переднем или заднем плане.
Что мне здесь не хватает для iOS 13?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
метод?