Я бью себя по голове. Я реализую уведомление pu sh. Все работает нормально (получен pu sh, значок обновлен), но в iOS 13.3 приложение метода (_: didReceiveRemoteNotification: fetchCompletionHandler :) не вызывается, когда приложение находится в фоновом режиме. Если приложение находится на переднем плане или использует устройство iOS 12, вызывается метод. Я регистрируюсь для уведомления pu sh следующим образом:
[[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
Из документов говорится, что этот метод вызывается, даже когда приложение находится в фоновом режиме:
Используйте этот метод для обработки входящих удаленных уведомлений для вашего приложения. В отличие от приложения: didReceiveRemoteNotification: метод, который вызывается только тогда, когда ваше приложение работает на переднем плане, система вызывает этот метод, когда ваше приложение работает на переднем или заднем плане.
Чего мне не хватает здесь для iOS 13?