Nella presentazione "Novità del multitasking" del WWDC 2013, c'è una sezione sulle notifiche push silenziose. Sembra semplice. Secondo la presentazione, se invii il payload APS con solo il contenuto disponibile impostato su 1, gli utenti non verranno avvisati della notifica.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
I miei test mostrano che questo non funziona in quanto non viene ricevuto alcun push. Ma se includo l'attributo sound ma escludo l'attributo alert, funziona (sebbene non sia più silenzioso).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Tuttavia, se cambio l'attributo sound per riprodurre un audio silenzioso, posso imitare una spinta silenziosa.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Qualcuno sa:
- Se questo è un bug?
- E se è corretto presumere che B o C venga trattato come una notifica remota (e non un bug con Silent Push in cui è necessario un attributo audio)? Se è così, questo significa che non è limitato alla velocità come lo sono i Silent Pushes ... che Apple probabilmente risolverà. Quindi probabilmente non dovrei fare affidamento su di esso.
- Qual è il limite di velocità (N push ogni X secondi, ecc.)?
Grazie in anticipo.
Modifica con più informazioni
Per A, lo stato dell'applicazione non ha importanza. La notifica non viene mai ricevuta.
Sembra che B e C funzionino solo se racchiudi attributi e valori tra virgolette, come di seguito.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
E la notifica arriva nell'applicazione: didReceiveRemoteNotification: fetchCompletionHandler: indipendentemente dallo stato.