Na apresentação "O que há de novo em multitarefa" do WWDC 2013, há uma seção sobre notificações silenciosas por push. Parece direto. De acordo com a apresentação, se você enviar a carga útil do APS apenas com o conteúdo disponível definido como 1, os usuários não serão notificados sobre a notificação.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Meu teste mostra que isso não funciona porque nenhum push é recebido. Mas se eu incluir o atributo de som, mas excluir o atributo de alerta, ele funciona (embora não seja mais silencioso).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
No entanto, se eu alterar o atributo de som para reproduzir um áudio silencioso, posso imitar um push silencioso.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Alguém sabe:
- Se isso é um bug?
- E se for correto presumir que B ou C está sendo tratado como uma Notificação Remota (e não um bug com Silent Push onde você precisa de um atributo de som)? Se for assim, isso significa que não tem limitação de taxa como os Silent Pushes são ... que a Apple provavelmente consertará. Portanto, provavelmente não devo confiar nisso.
- Qual é o limite de taxa (N empurra a cada X segundos, etc)?
Desde já, obrigado.
Edite com mais informações
Para A, o estado do aplicativo não importa. Notificação nunca é recebida.
Parece que B e C só funcionam se você colocar os atributos e valores entre aspas, como abaixo.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
E a notificação chega no aplicativo: didReceiveRemoteNotification: fetchCompletionHandler: independente do estado.