Show Menu
TEMAS×

Mostrar una imagen desde una notificación push de Adobe Campaign Standard

Este documento solo se aplica a dispositivos iOS.

Paso 1: Configurar notificación push

Los SDK de la plataforma de experiencia admiten la notificación push.
Un administrador de la interfaz de Adobe Campaign debe configurar las aplicaciones móviles que reciben notificaciones push.
Al configurar Adobe Campaign y Adobe Mobile Services, podrá utilizar los datos de su aplicación móvil para sus campañas. Para obtener más información, consulte esta página .
Para enviar notificaciones push con una aplicación de SDK de Experience Cloud, una aplicación móvil debe configurarse en Adobe Experience Platform Launch y en Adobe Campaign. Para obtener más información, consulte esta página .

Paso 2: Personalice la notificación push en Adobe Campaign

Para ajustar la notificación push, Adobe Campaign le permite acceder a un conjunto de opciones avanzadas mientras diseña una notificación push.
  1. Cree una notificación push. Para obtener más información, consulte esta página.
  2. En la página de contenido de notificaciones push, acceda a la sección Opciones avanzadas.
  3. Introduzca la dirección URL del archivo en el campo URL de contenido de medios enriquecidos. Para iOS 10 o superior, puede insertar archivos de imagen, gif, audio y vídeo.
  4. Previsualización y guarde la notificación push.

Paso 3: Adaptar el código de la aplicación móvil

Después de personalizar la notificación push en Adobe Campaign, debe configurar la aplicación móvil para que muestre la imagen en los dispositivos.
Si su aplicación está en Objective-C, consulte la siguiente documentación .
Si la aplicación está en Swift, siga los pasos a continuación:
  1. Abra el proyecto de xCode.
  2. En el proyecto Xcode, seleccione Archivo > Nuevo > Destinatario .
  3. Seleccione Extensión del servicio de notificaciones.
  4. Compruebe que se crea la clase de archivo NotificationService.swift .
  5. Edite esta clase y reemplace el contenido predeterminado por lo siguiente. Esto permite que la aplicación gestione el parámetro entrante con la dirección URL de la imagen, lo analice, lo copie localmente y, a continuación, lo muestre desde la notificación push.
    import UserNotifications
    
    class NotificationService: UNNotificationServiceExtension {
    
    var contentHandler: ((UNNotificationContent) -> Void)?
    var bestAttemptContent: UNMutableNotificationContent?
    
    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.contentHandler = contentHandler
        bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
    
        if let bestAttemptContent = bestAttemptContent {
            var urlString:String? = nil
            if let urlImageString = request.content.userInfo["media-attachment-url"] as? String {
                urlString = urlImageString
            }
    
            if urlString != nil, let fileUrl = URL(string: urlString!) {
                print("fileUrl: \(fileUrl)")
    
                // Download the attachment
                URLSession.shared.downloadTask(with: fileUrl) { (location, response, error) in
                    if let location = location {
                        // Move temporary file to remove .tmp extension
                        if (error == nil) {
                            let tmpDirectory = NSTemporaryDirectory()
                            let tmpFile = "file://".appending(tmpDirectory).appending(fileUrl.lastPathComponent)
                            let tmpUrl = URL(string: tmpFile)!
                            try! FileManager.default.moveItem(at: location, to: tmpUrl)
    
                            // Add the attachment to the notification content
                            if let attachment = try? UNNotificationAttachment(identifier: fileUrl.lastPathComponent, url: tmpUrl) {
                                bestAttemptContent.attachments = [attachment]
                                }
                        }
                        if(error != nil) {
                            print("Failed to download attachment: \(error.debugDescription)")
                        }
                    }
                    // Serve the notification content
                    contentHandler(bestAttemptContent)
                }.resume()
            }
        }
    }
    
    override func serviceExtensionTimeWillExpire() {
        // Called just before the extension will be terminated by the system.
        // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
        if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
            contentHandler(bestAttemptContent)
        }
    }
    
    }
    
    
El dispositivo móvil debe recibir la siguiente carga útil mientras se envía la notificación.
La dirección URL de la imagen se asigna a la clave media-attachment-url. Es el par clave/valor que debe gestionar desde la perspectiva del código de la aplicación para descargar y mostrar la imagen.
userInfo: [AnyHashable("media-attachment-url"): https://pbs.twimg.com/profile_images/876737835314950144/zPTs9b7o.jpg, AnyHashable("_dId"): 1de3ef93, AnyHashable("_mId"): h280a5, AnyHashable("aps"): {
 
    alert =     {
 
        body = "Message Body here";
 
        title = "This a push from Campaign";
 
    };
 
    badge = 1;
 
    "mutable-content" = 1;
 
}]

Paso 4: Prueba de envío de la notificación push

Ahora puede probar la creación de la aplicación y el envío creado en el paso 2 anterior. Para obtener más información sobre cómo preparar y enviar la notificación push, consulte esta página .