Uso de datos en notificaciones Push enriquecidas en iOS con FCM

Mi pregunta puede ser mala, pero no puedo encontrar ninguna respuesta en ningún lado, estoy perdido ...


Así que quiero mostrar una notificación enriquecida con una buena imagen en iOS 10+.

Para esto estoy usando FCM y una extensión UNNotificationService que, si entendí correctamente, debería obtener la carga útil de datos, encontrar la URL de la imagen y cargarla antes de modificar el contenido UNNotificationContent.

El problema que tengo es que no puedo obtener estos "datos".

Lo que estoy enviando a FCM es lo siguiente:

{
"to": "device_token",
"content_available": true,
"mutable_content": true,
"badge" : 9,
"notification": {
    "title": "You still need the iPhone ?",
    "body": "Give it back if you finished you tests !"
},
"data": {
    "message": "test !",
    "mediaUrl": "http://usr.audioasylum.com/images/2/20352/Cat_and_rose.jpg"
},
"priority": "high"
}

Lo que recibo en el teléfono es:

{
aps =     {
    alert =         {
        body = "Give it back if you finished you tests !";
        title = "You still need the iPhone ?";
    };
    "content-available" = 1;
    "mutable-content" = 1;
};
"gcm.message_id" = "0:1489054783357873%1ee659bb1ee659bb";
mediaUrl = "http://usr.audioasylum.com/images/2/20352/Cat_and_rose.jpg";
message = "Offer!";
}

Según tengo entendido, la mediaURL y el mensaje deberían terminar en "aps" y no afuera, por lo que no puedo encontrarlos en la extensión.

Y dentro de la extensión obtengo: (Lo dividí en coma para mayor legibilidad)

<UNNotificationRequest: 0x117d3c170;
identifier: FDC13B60-FE5A-40C6-896D-06D422043CCE
content: <UNNotificationContent: 0x117d3a650; title: You still need the iPhone ?
subtitle: (null)
body: Give it back if you finished you tests !
categoryIdentifier: 
launchImageName: 
peopleIdentifiers: ()
threadIdentifier: 
attachments: ()
badge: (null)
sound: (null)
hasDefaultAction: YES
shouldAddToNotificationsList: YES
shouldAlwaysAlertWhileAppIsForeground: NO
shouldLockDevice: NO
shouldPauseMedia: NO
isSnoozeable: NO
fromSnooze: NO
darwinNotificationName: (null)
darwinSnoozedNotificationName: (null)
trigger: <UNPushNotificationTrigger: 0x117d3fe90; contentAvailable: YES
 mutableContent: YES>>

¿El problema es cómo envío información con FCM o la forma en que la recupero? Tal vez es la forma en que los trato?

¡Como siempre, gracias por la ayuda!

Editar: código agregado para el receptor (que es solo una impresión en la extensión)

@interface NotificationService ()

@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;

@end

@implementation NotificationService

- (void) didReceiveNotificationRequest: (UNNotificationRequest *) request
                    withContentHandler: (void (^)(UNNotificationContent *_Nonnull))contentHandler
{
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    NSLog(@"------------------- %@ -------------------", request);

    // Modify the notification content here...
    self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]", self.bestAttemptContent.title];
    self.bestAttemptContent.body = [NSString stringWithFormat:@"%@", request.content];
    self.contentHandler(self.bestAttemptContent);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta