Questo documento si applica solo ai dispositivi iOS.
In questo documento, scoprite come visualizzare un'immagine da una notifica push di Adobe Campaign Standard iOS .
La notifica push è supportata dagli SDK Experience Platform.
Le applicazioni mobili che ricevono le notifiche push devono essere configurate da un amministratore nell'interfaccia Adobe Campaign .
Configurando sia Adobe Campaign che Adobe Mobile Services, potrete utilizzare i dati dell'applicazione mobile per le campagne. Per ulteriori informazioni, consulta questa pagina.
Per inviare notifiche push con un'applicazione SDK Experience Cloud, è necessario impostare un'app mobile Adobe Experience Platform Launch e configurarla in Adobe Campaign. Per ulteriori informazioni, consulta questa pagina.
Per ottimizzare la notifica push, Adobe Campaign ti consente di accedere a un set di opzioni avanzate durante la progettazione di una notifica push.
Creare una notifica push. Per ulteriori informazioni, consulta questa pagina.
Dalla pagina del contenuto della notifica push, accedete alla sezione Advanced options.
Immettete l'URL del file nel campo Rich media content URL.
Per iOS 10 o versioni successive, puoi inserire file immagine, gif, audio e video.
Visualizzate l'anteprima e salvate la notifica push.
Dopo aver personalizzato la notifica push in Adobe Campaign, dovete configurare l'applicazione mobile per visualizzare l'immagine sui dispositivi.
Se l'applicazione è in Objective-C, fare riferimento alla seguente documentazione.
Se l'app è in Swift, segui i passaggi seguenti:
Apri il progetto Xcode.
Nel progetto Xcode, selezionare File > New > Target.
Seleziona Notification Service Extension.
Verificate che la classe di file NotificationService.swift sia stata creata.
Modificate questa classe e sostituite il contenuto predefinito con quanto segue.
Questo consente all’applicazione di gestire il parametro in entrata con l’URL dell’immagine, analizzarlo, copiarlo localmente e quindi visualizzarlo dalla notifica 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)
}
}
}
Il cellulare deve ricevere il payload seguente durante l'invio della notifica.
L’URL dell’immagine viene mappato con l’URL del supporto chiave-attachment-url. È la coppia chiave/valore che è necessario gestire dal punto di vista del codice dell'applicazione per scaricare e visualizzare l'immagine.
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;
}]
È ora possibile verificare la creazione dell'applicazione e la consegna creata nel passaggio 2 precedente. Per ulteriori informazioni sulla preparazione e l'invio della notifica push, consultate questa pagina.