Azure push notificación hub – cómo manejar los formatos de carga útil para iOS y Android?

Estoy tratando de soportar plataformas iOS y Android a través de Azure Notification Hub.

La plataforma iOS espera la carga útil en la forma:

{"Aps": {"alert": "notificación de la notificación Hub de prueba"}}

Mientras que la plataforma Android espera que la carga útil en la forma:

{"Data": {"message": "Notification Hub test notification"}}

Soy consciente de que la carga útil puede ser modificada para incluir más información, pero el ejemplo es suficiente para la pregunta.

Teniendo en cuenta que enviar una notificación a un destino basado en una etiqueta y no mantener un registro de la plataforma que cada notificación push utiliza el registro es la única alternativa para enviar la notificación dos veces, una vez para la manzana nativa y la segunda para gcm nativo?

HubClient.SendAppleNativeNotificationAsync (carga útil, etiqueta); HubClient.SendGcmNativeNotificationAsync (carga útil, etiqueta);

¿O hay una manera de enviar una notificación a Azure Notification Hub con múltiples cargas y entonces el centro de notificación usará la carga útil apropiada para el dispositivo de destino?

La solución que presenta es suficiente y es la mejor manera.

Si realmente desea evitar la llamada extra (de nuevo no hay necesidad de hacer las llamadas extra a la notificación hub).

  1. Cuando se registra el dispositivo también registrar una etiqueta de "tipo"
  2. Consulte el concentrador de notificación para la etiqueta "tipo" y la otra etiqueta que desea enviar a

    Para (registro reg en hubClient.getRegistrationsByTag (iosTag)) {hubClient.SendAppleNativeNotificationAsync (carga útil, etiqueta); }

    Para (reg de registro en hubClient.getRegistrationsByTag (androidTag)) {hubClient.SendGcmNativeNotificationAsync (payload, tag); }

Es probable que tenga que cambiar a las notificaciones plantilla. Entendí que estos son 'independiente de la plataforma' y se puede analizar en el cliente en la aplicación específica.
Utilicé solamente los cubos de la notificación para la plataforma de Windows, así que podría ser incorrecto aquí, apenas quería dar una indirecta. http://www.microsoft.com/servicebus

Yo tuve el mismo problema. Primero traté de solucionarlo usando Notificaciones de plantillas pero tuve problemas importantes cuando quería tener una insignia correcta y una actualización de sonido en ios y android. Así que cambié de nuevo a las notificaciones nativas para iOS y Android. Mi solución final al problema es comprobar el tipo de NotificationDescription cuando envío la notificación. Utilizo un enumerador para obtener todas las etiquetas necesarias desde el centro de notificación y luego comprobar el tipo nativo y enviar la notificación basada en esto. Ejemplo de código:

if (typeof(AppleRegistrationDescription) == currentNotificationDescription.GetType()) { var jsonPayload = "{\"aps\" : { \"alert\" : \"" + message + "\", \"badge\" : " + badge + ", \"sound\" : \"default\" }, \"acme1\" : \"bar\", \"acme2\" : 42 }"; await _hubClient.SendAppleNativeNotificationAsync(jsonPayload, tag); } else if(typeof(GcmRegistrationDescription) == currentDesc.GetType()) { var jsonPayload = "{\"data\" : { \"message\" : \"" + message + "\", \"badge\" : " + badge + ", \"sound\" : \"default\" }, \"acme1\" : \"bar\", \"acme2\" : 42 }"; await _hubClient.SendGcmNativeNotificationAsync(jsonPayload, tag); } 
  • Evitar la cancelación de la notificación al eliminar la aplicación de la lista de aplicaciones recientes
  • Android OnNewIntent no se llama
  • Cómo crear una notificación en la barra de estado mediante un mensaje de teléfono
  • Enviar notificación de aplicación de Android a facebook mediante la notificación de API de facebook
  • Android: ¿Cómo colapsar la barra de estado en android 4.2?
  • ¿Es posible configurar la notificación ampliada como predeterminada en las notificaciones de texto grande?
  • ¿Es posible cancelar todas las notificaciones que tienen una etiqueta determinada?
  • ¿Cómo hacer que la función de notificación de respuesta directa de Android funcione en dispositivos pre-Android N?
  • Registro de GCM con dos identificadores de registro de trabajo diferentes
  • En Android (en JB), ¿cómo puedo añadir una acción a una notificación personalizada rica?
  • Controles del reproductor de medios en la notificación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.