W prezentacji „Co nowego w wielozadaniowości” WWDC 2013 znajduje się sekcja dotycząca cichych powiadomień push. Wydaje się proste. Zgodnie z prezentacją, jeśli wyślesz ładunek APS tylko z dostępną zawartością ustawioną na 1, użytkownicy nie zostaną powiadomieni o powiadomieniu.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Moje testy pokazują, że to nie działa, ponieważ nie jest odbierany żaden push. Ale jeśli dołączę atrybut dźwięku, ale wykluczę atrybut alertu, działa (choć już nie jest cichy).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Jeśli jednak zmienię atrybut dźwięku, aby odtwarzać cichy dźwięk, mogę naśladować ciche pchnięcie.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Czy ktoś wie:
- Jeśli to błąd?
- A czy słuszne jest założenie, że B lub C jest traktowane jako zdalne powiadomienie (a nie błąd w Silent Push, gdzie potrzebujesz atrybutu dźwięku)? Jeśli tak, oznacza to, że nie ma ograniczenia szybkości, tak jak Silent Push ... które Apple prawdopodobnie naprawi. Więc prawdopodobnie nie powinienem na tym polegać.
- Jaki jest limit szybkości (N przesuwa co X sekund itp.)?
Z góry dziękuję.
Edytuj, podając więcej informacji
W przypadku A stan aplikacji nie ma znaczenia. Powiadomienie nigdy nie zostało odebrane.
Wygląda na to, że B i C działają tylko wtedy, gdy umieścisz atrybuty i wartości w cudzysłowach, jak poniżej.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
Powiadomienie dociera do aplikacji: didReceiveRemoteNotification: fetchCompletionHandler: niezależnie od stanu.