В презентации WWDC 2013 "Что нового в многозадачности" есть раздел "Оповещения без звука". Это кажется прямым. Согласно презентации, если вы отправляете полезную нагрузку APS с доступным только для контента значением 1, пользователи не будут уведомлены об этом уведомлении.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Мое тестирование показывает, что это не работает, так как никакого нажатия не получено. Но если я включаю звуковой атрибут, но исключаю атрибут alert, он работает (хотя и не молчит).
// 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 Pushes..., которое Apple, скорее всего, исправит. Поэтому я, вероятно, не должен полагаться на это.
- Каков предел скорости (N нажимает каждые X секунд и т.д.)?
Спасибо заранее.
Изменить с дополнительной информацией
Для A состояние приложения не имеет значения. Уведомление никогда не принимается.
Кажется, что B и C работают только в том случае, если вы включаете атрибуты и значения в кавычки, как показано ниже.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
И уведомление приходит в приложении: didReceiveRemoteNotification: fetchCompletionHandler:, независимо от состояния.