Integrazione delle attività live con Adobe Experience Platform Mobile SDK mobile-live-config-sdk

Il SDK mobile di Adobe Experience Platform fornisce supporto integrato per l’attività Live di Apple. Questo consente all’app di visualizzare aggiornamenti dinamici in tempo reale direttamente sullo schermo di blocco e su Dynamic Island senza aprire l’app.

  1. Importa moduli richiesti

    Importare i seguenti moduli: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

  2. Definisci attributi

    Conforme a LiveActivityAttributes, includi LiveActivityData e gli attributi ContentState.

  3. Registra attività live

    Utilizzare Messaging.registerLiveActivity() dopo l'inizializzazione di SDK.

  4. Crea configurazione widget

    Implementare ActivityConfiguration sia per l'interfaccia schermata di blocco che per l'interfaccia dell'isola dinamica.

  5. Avviare un’attività Live localmente (facoltativo)

    L’attività live può essere avviata in remoto tramite Journey Optimizer o in locale all’interno del codice dell’applicazione.

  6. Aggiunta del supporto per il debug (facoltativo)

    Implementare LiveActivityAssuranceDebuggable per Assurance.

Verifica che siano installate le seguenti versioni minime per garantire la corretta configurazione e compatibilità.

recommendation-more-help

Prerequisiti:

  • iOS:

    • iOS16.1 o versione successiva: funzionalità di base delle attività live
    • iOS 17.2+: supporto push-to-start
    • iOS 18+: supporto canale di trasmissione
  • Xcode: 14.0 o versione successiva

  • Swift: versione 5.7 o successiva

  • Dipendenze: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit

  • AEP Mobile SDK versione: iOS Messaging 5.11.0 o versione successiva

Passaggio 1: importare i moduli richiesti import

Per iniziare, è innanzitutto necessario importare i seguenti moduli: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit

Passaggio 2: definire gli attributi dell’attività live attributes

Creare uno struct conforme al protocollo LiveActivityAttributes. Questo definisce sia i dati statici che lo stato del contenuto dinamico per la tua attività Live.

I componenti chiave includono:

  • liveActivityData (obbligatorio) che contiene dati specifici di Adobe Experience Platform.

    • Per singoli utenti: utilizzare LiveActivityData(liveActivityID: "unique-id")
    • Per la trasmissione: utilizzare LiveActivityData(channelID: "channel-id")
  • Attributi statici, proprietà personalizzate specifiche del caso d'uso, ad esempio restaurantName.

  • ContentState che definisce i dati dinamici che possono essere aggiornati durante il ciclo di vita dell'attività Live. Deve essere conforme a Codable e Hashable.

  • L'enumerazione LiveActivityOrigin specifica se un'attività è stata avviata localmente all'interno dell'app o in remoto tramite una notifica push-to-start, supportata in iOS 17.2 e versioni successive. Questo valore consente a SDK di distinguere tra attività Live avviate localmente e attivate in remoto durante la raccolta dei dati.

Esempi

@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes {
    // Mandatory: AEP Integration Data
    var liveActivityData: LiveActivityData

    // Static Attributes: Custom properties that do not change
    var restaurantName: String

    // Dynamic Content State: Data that can be updated
    struct ContentState: Codable, Hashable {
        var orderStatus: String
    }
}
@available(iOS 16.1, *)
public struct LiveActivityData: Codable {
    /// Unique identifier for broadcast Live activity channels
    public let channelID: String?

    /// Unique identifier for individual Live activity
    public let liveActivityID: String?

    /// Indicates local vs remote creation
    public let origin: LiveActivityOrigin?

    // Initializers
    public init(channelID: String)        // For broadcast Live activity
    public init(liveActivityID: String)   // For individual Live activity
}

Puoi anche registrare più tipi di attività Live per la tua app:

if #available(iOS 16.1, *) {
    Messaging.registerLiveActivity(AirplaneTrackingAttributes.self)
    Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
    Messaging.registerLiveActivity(GameScoreLiveActivityAttributes.self)
}

Passaggio 3: registrare l’attività live register

Registra i tipi di attività Live in AppDelegate dopo l'inizializzazione di SDK per:

  • Abilita la raccolta di token push-to-start automatica (iOS 17.2+)
  • Raccoglie automaticamente i token di aggiornamento dell'attività live
  • Gestione del ciclo di vita e tracciamento degli eventi

Esempio di attività Live di consegna di cibo:

if #available(iOS 16.1, *) {
    Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
}

Passaggio 4: creare widget di attività live widgets

L’attività live viene visualizzata tramite widget. Devi creare un bundle di widget e la relativa configurazione:

Esempio di attività Live di consegna di cibo:

@main
struct FoodDeliveryWidgetBundle: WidgetBundle {
    var body: some Widget {
        FoodDeliveryLiveActivityWidget()
    }
}

@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityWidget: Widget {
    var body: some WidgetConfiguration {
        ActivityConfiguration(for: FoodDeliveryLiveActivityAttributes.self) { context in
            // Lock Screen UI
            VStack {
                Text("Order from \(context.attributes.restaurantName)")
                Text("Status: \(context.state.orderStatus)") // possible status may include "Ordered", "Order accepted", "Preparing", "On the Way","Delivered"
            }
        } dynamicIsland: { context in
            // Dynamic Island UI
            DynamicIsland {
                // Expanded UI
            } compactLeading: {
                // Compact leading UI
            } compactTrailing: {
                // Compact trailing UI
            } minimal: {
                // Minimal UI
            }
        }
    }
}

Passaggio 5: avviare localmente un’attività Live (facoltativo) local

Journey Optimizer può avviare l'attività in remoto, ma puoi anche avviarla localmente:

Esempio di attività Live di consegna di cibo:

let attributes = FoodDeliveryLiveActivityAttributes(
    liveActivityData: LiveActivityData(liveActivityID: "order123"),
    restaurantName: "Pizza Palace"
)

let contentState = FoodDeliveryLiveActivityAttributes.ContentState(
    orderStatus: "Ordered"
)

let activity = try Activity<FoodDeliveryLiveActivityAttributes>.request(
    attributes: attributes,
    contentState: contentState,
    pushType: .token
)

Passaggio 6: aggiungere il supporto di debug (facoltativo) debug

Se necessario, puoi eseguire il debug degli schemi di attività live in Adobe Assurance:

Esempio di attività Live di consegna di cibo:

@available(iOS 16.1, *)
extension FoodDeliveryLiveActivityAttributes: LiveActivityAssuranceDebuggable {
    static func getDebugInfo() -> (attributes: FoodDeliveryLiveActivityAttributes, state: ContentState) {
        return (
            FoodDeliveryLiveActivityAttributes(
                liveActivityData: LiveActivityData(liveActivityID: "debug-order-123"),
                restaurantName: "Debug Restaurant"
            ),
            ContentState(orderStatus: "Ordered")
        )
    }
}

Risorse aggiuntive

Per la documentazione completa e i dettagli di implementazione di SDK:

b22c9c5d-9208-48f4-b874-1cefb8df4d76