После некоторых исследований и благодаря ответу Paulw1 я обнаружил, что есть два способа сделать это:
Только дистанционное управление
Уведомления могут быть свернуты удаленно, вы только должны отправить уведомление с apns-collapse-id
в качестве заголовка запроса.Обратите внимание, что он поддерживается только в HTTP / 2.Дополнительная информация здесь .
Тихое удаленное + локальное уведомление
Другой способ заключается в отправке удаленного уведомления в автоматическом режиме с такой полезной нагрузкой:
{
"type": "notification_type",
"aps" : {
"content-available": 1
}
}
Он будет вызывать didReceiveRemoteNotification
, даже если состояние приложения inactive
или background
.Затем я создаю локальный запрос уведомления (необходимо использовать UserNotifications
, доступный с iOS10):
let content = UNMutableNotificationContent()
content.body = "Notification message"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.25, repeats: false)
let request = UNNotificationRequest(identifier: "identifierToUpdate", content: content, trigger: trigger)
self.center.add(request, withCompletionHandler: nil)
Ключом для обновления предыдущего уведомления является использование того же идентификатора запроса.