Dans la présentation «Quoi de neuf avec le multitâche» de la WWDC 2013, il y a une section sur les notifications push silencieuses. Cela semble simple. Selon la présentation, si vous envoyez la charge utile APS avec uniquement le contenu disponible défini sur 1, les utilisateurs ne seront pas informés de la notification.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Mes tests montrent que cela ne fonctionne pas car aucun push n'est reçu. Mais si j'inclus l'attribut sound mais exclut l'attribut alert, cela fonctionne (bien que plus silencieux).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Cependant, si je change l'attribut sonore pour lire un son silencieux, je peux imiter une poussée silencieuse.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Est-ce que quelqu'un sait:
- Si c'est un bug?
- Et s'il est correct de supposer que B ou C est traité comme une notification à distance (et non comme un bogue avec Silent Push où vous avez besoin d'un attribut sonore)? Si tel est le cas, cela signifie qu'il n'est pas limité comme le sont les Silent Pushes ... ce qu'Apple corrigera probablement. Je ne devrais donc probablement pas m'y fier.
- Quelle est la limite de débit (N pousse toutes les X secondes, etc.)?
Merci d'avance.
Modifier avec plus d'informations
Pour A, l'état de l'application n'a pas d'importance. La notification n'est jamais reçue.
Il semble que B et C ne fonctionnent que si vous mettez les attributs et les valeurs entre guillemets, comme ci-dessous.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
Et la notification arrive dans l' application: didReceiveRemoteNotification: fetchCompletionHandler: quel que soit l'état.