En la presentación "Novedades de la multitarea" de la WWDC 2013, hay una sección sobre notificaciones automáticas silenciosas. Parece sencillo. Según la presentación, si envía la carga útil de APS con solo el contenido disponible establecido en 1, los usuarios no serán notificados de la notificación.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Mis pruebas muestran que esto no funciona ya que no se recibe ningún empujón. Pero si incluyo el atributo de sonido pero excluyo el atributo de alerta, funciona (aunque ya no es silencioso).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Sin embargo, si cambio el atributo de sonido para reproducir un audio silencioso, puedo imitar un empujón silencioso.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Alguien sabe:
- Si esto es un error?
- ¿Y si es correcto asumir que B o C están siendo tratados como una notificación remota (y no un error con Silent Push donde necesita un atributo de sonido)? Si es así, esto significa que no tiene una tasa limitada como lo son los Silent Pushes ... que Apple probablemente arreglará. Así que probablemente no debería confiar en eso.
- ¿Cuál es el límite de frecuencia (N pulsaciones cada X segundos, etc.)?
Gracias por adelantado.
Editar con más información
Para A, el estado de la aplicación no importa. Nunca se recibe una notificación.
Parece que B y C solo funcionan si encierra los atributos y valores entre comillas, como se muestra a continuación.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
Y la notificación llega a la aplicación: didReceiveRemoteNotification: fetchCompletionHandler: independientemente del estado.