Show Menu
TÓPICOS×

Exibir uma imagem de uma notificação por push do Adobe Campaign Standard

Este documento se aplica somente a dispositivos iOS.

Etapa 1: Configurar notificação por push

A notificação por push é suportada pelos SDKs da plataforma Experience.
Os aplicativos móveis que recebem notificações por push devem ser configurados por um administrador na interface do Adobe Campaign.
Ao configurar o Adobe Campaign e o Adobe Mobile Services, você poderá usar os dados de seu aplicativo móvel para suas campanhas. Para obter mais informações, consulte esta página .
Para enviar notificações por push com um aplicativo SDK da Experience Cloud, é necessário configurar um aplicativo móvel no Adobe Experience Platform Launch e configurá-lo no Adobe Campaign. Para obter mais informações, consulte esta página .

Etapa 2: Personalize sua notificação por push no Adobe Campaign

Para ajustar sua notificação por push, o Adobe Campaign permite que você acesse um conjunto de opções avançadas ao projetar uma notificação por push.
  1. Crie uma notificação por push. Para obter mais informações, consulte esta página.
  2. Na página de conteúdo da notificação por push, acesse a seção Opções avançadas.
  3. Digite o URL do arquivo no campo URL do conteúdo de mídia avançada. No iOS 10 ou superior, você pode inserir arquivos de imagem, gif, áudio e vídeo.
  4. Pré-visualização e salve sua notificação por push.

Etapa 3: Adapte o código do aplicativo móvel

Depois de personalizar sua notificação por push no Adobe Campaign, é necessário configurar seu aplicativo móvel para exibir a imagem em dispositivos.
Se seu aplicativo estiver no Objetivo C, consulte a seguinte documentação .
Se seu aplicativo estiver no Swift, siga as etapas abaixo:
  1. Abra o projeto do xCode.
  2. No projeto Xcode, selecione Arquivo > Novo > Público alvo .
  3. Selecione Extensão do serviço de notificação.
  4. Verifique se a classe de arquivo NotificationService.swift foi criada.
  5. Edite essa classe e substitua o conteúdo padrão pelo seguinte. Isso permite que o aplicativo manipule o parâmetro de entrada com o URL da imagem, analise-o, copie-o localmente e, em seguida, exiba-o da notificação por 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)
        }
    }
    
    }
    
    
O dispositivo móvel deve receber a seguinte carga enquanto a notificação é enviada.
O URL da imagem é mapeado com o principal media-attachment-url. Esse é o par de chave/valor que você precisa manipular da perspectiva do código do aplicativo para baixar e exibir a imagem.
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;
 
}]

Etapa 4: Teste de envio do push

Agora você pode testar a criação do aplicativo e do delivery criado na etapa 2 acima. Para obter mais informações sobre como preparar e enviar sua notificação por push, consulte esta página .