Carga de notificación de envío silencioso

Solo quiero preguntar cómo puedo determinar qué acción hacer en un impulso silencioso:

Este es el aps que envié al cliente:

aps { content-available: 1 } 

Mi problema ahora es cuando agrego el tipo: “Order_Update” para determinar que la inserción silenciosa es para la Actualización de pedidos, que muestra una notificación de alerta

Hay algunas opciones para eso! Hagamos un pequeño recorrido para comprender todas las diferentes cargas útiles y su uso.


Carga simple

Mostrado en el centro de notificaciones: sí

Despierta la aplicación para realizar la tarea en segundo plano: no

 { "aps" : { "alert" : "You received simple notification!", "badge" : 1, "sound" : "default" } } 

Carga útil con sonido de notificación personalizado

Mostrado en el centro de notificaciones: sí

Despierta la aplicación para realizar la tarea en segundo plano: no

Step 1 : Agregue un archivo de sonido de notificaciones personalizadas (extensiones .wav o .aiff, por ejemplo, notification.wav) en su paquete de aplicaciones.

Step 2 : configura tu carga útil como se muestra a continuación para reproducir tu sonido personalizado

 { "aps" : { "alert" : "It's a custom notification sound!", "badge" : 1, "sound" : "notification.wav" } } 

Notificación con carga útil personalizada

Mostrado en el centro de notificaciones: sí

Despierta la aplicación para realizar la tarea en segundo plano: no

 { "aps" : { "alert" : "It's a notification with custom payload!", "badge" : 1, "content-available" : 0 }, "data" :{ "title" : "Game Request", "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" }, } 

Aquí el diccionario de data contiene información personalizada lo que quieras. También se mostrará como notificación normal con el mensaje de alerta “¡Es una notificación con carga útil personalizada!”.


Notificación silenciosa normal

No mostrará una alerta como una barra de notificaciones; solo notificará a su aplicación que hay algunos datos nuevos disponibles, lo que provocará que la aplicación busque contenido nuevo.

Mostrado en el centro de notificaciones: no

Aplicación Despierta para realizar una tarea en segundo plano: Sí

 { "content-available" : 1 } 

Notificación silenciosa con carga útil personalizada

¡Aquí viene la magia de mostrar una alerta de notificación y despertar tu aplicación en segundo plano para una tarea! (Nota: solo si se está ejecutando en segundo plano y no ha sido eliminado de forma explícita por el usuario.) Simplemente agregue el parámetro adicional "content-available" : 1 en su carga útil.

Mostrado en el centro de notificaciones: sí

Despierta la aplicación para realizar una tarea en segundo plano: Sí

 { "aps" : { "alert" : "Notification with custom payload!", "badge" : 1, "content-available" : 1 }, "data" :{ "title" : "Game Request", "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" } } 

Utilice cualquiera de estas cargas de acuerdo con los requisitos de su aplicación. Para background app refresh consulte la documentación de Apple . Espero que esto te brinde toda la información necesaria. Feliz encoding 🙂

Según tengo entendido, usted quiere datos adicionales dentro de la carga útil, para que pueda identificar qué tipo de notificación de inserción es o qué acción debe ser manejada.

Para eso edita tu carga útil como:

  $body = array( 'content-available' => 1, 'sound' => '' ); $payload = array(); $payload['aps'] = $body; $payload['action'] = 'order_update'; 

Luego, en tu código de iOS:

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSString *action = userInfo["action"]; if([userInfo[@"aps"][@"content-available"] intValue]== 1 && [action isEqualToString:@"order_update") //order update notification { //handle Your Action here return; } } 

¡Espero que esto resuelva tu problema!