Show Menu
SUJETS×

Affichage d’une image à partir d’une notification push Adobe Campaign Standard

Ce document s’applique uniquement aux appareils iOS.

Étape 1 : configuration des notifications push

Les notifications push sont prises en charge par les SDK Experience Platform.
Les applications mobiles recevant les notifications push doivent être configurées par un administrateur dans l'interface d'Adobe Campaign.
En configurant Adobe Campaign et Adobe Mobile Services, vous serez en mesure d'utiliser les données de votre application mobile pour vos campagnes. Pour plus d’informations à ce propos, consultez cette page .
Pour envoyer des notifications push avec l'application SDK Experience Cloud, une application mobile doit être créée dans Adobe Experience Platform Launch et configurée dans Adobe Campaign. Pour plus d’informations à ce propos, consultez cette page .

Étape 2 : personnalisation de votre notification push dans Adobe Campaign

Pour parfaire votre notification push, Adobe Campaign vous permet d'accéder à un ensemble d'options avancées lors de sa création.
  1. Créez une notification push. Pour plus d’informations à ce propos, consultez cette page.
  2. Dans la page de contenu de la notification push, accédez à la section Options avancées.
  3. Saisissez l’URL de votre fichier dans le champ URL du contenu multimédia enrichi. À partir d’iOS 10, vous pouvez insérer des fichiers image, gif, audio et vidéo.
  4. Prévisualisez et enregistrez votre notification push.

Étape 3 : adaptation du code de l’application mobile

Après avoir personnalisé votre notification push dans Adobe Campaign, vous devez configurer votre application mobile pour afficher l’image sur les appareils.
Si votre application est en Objective-C, reportez-vous à la documentation suivante.
Si votre application est en Swift, procédez comme suit :
  1. Ouvrez votre projet xCode.
  2. Dans le projet Xcode, sélectionnez File > New > Target .
  3. Sélectionnez Notification Service Extension.
  4. Vérifiez que la classe de fichier NotificationService.swift est créée.
  5. Modifiez cette classe et remplacez le contenu par défaut par ce qui suit. L’application peut ainsi gérer le paramètre entrant avec l’URL de l’image, l’analyser, le copier localement, puis l’afficher à partir de la notification 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)
        }
    }
    
    }
    
    
Le mobile doit recevoir la payload suivante lors de l’envoi de la notification.
L’URL de l’image est mappée avec la clé media-attachment-url. Il s’agit de la paire clé/valeur que vous devez gérer du point de vue du code de l’application pour télécharger et afficher l’image.
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;
 
}]

Étape 4 : test de l’envoi de la notification push

Vous pouvez maintenant tester la création de votre application et la diffusion que vous avez créée à l’étape 2 ci-dessus. Pour plus d’informations sur la préparation et l’envoi de votre notification push, consultez cette page .