В презентации WWDC 2013 «Что нового в многозадачности» есть раздел о бесшумных push-уведомлениях. Кажется, прямолинейно. Согласно презентации, если вы отправляете полезную нагрузку APS только с доступным содержимым, установленным на 1, пользователи не будут уведомлены об уведомлении.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Мое тестирование показывает, что это не работает, так как push не поступает. Но если я включаю атрибут звука, но исключаю атрибут предупреждения, он работает (хотя больше не молчит).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Однако, если я изменю атрибут звука для воспроизведения беззвучного звука, я могу имитировать тихий толчок.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Кто-нибудь знает:
- Если это ошибка?
- И правильно ли предположить, что B или C обрабатываются как удаленное уведомление (а не ошибка с Silent Push, где вам нужен атрибут звука)? Если это так, это означает, что он не ограничен по скорости, как Silent Push ... что Apple, вероятно, исправит. Так что полагаться на это, наверное, не стоит.
- Каков предел скорости (N нажатий каждые X секунд и т. Д.)?
Заранее спасибо.
Редактировать с дополнительной информацией
Для A состояние приложения не имеет значения. Уведомление не получено.
Похоже, что B и C работают, только если вы заключите атрибуты и значения в кавычки, как показано ниже.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
И уведомление приходит в приложение: didReceiveRemoteNotification: fetchCompletionHandler: независимо от состояния.