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

In questa pagina: integra il SDK Adobe Experience Platform Mobile nell’app iOS in modo che possa registrare, visualizzare e ricevere aggiornamenti delle attività Live in tempo reale nella schermata di blocco e nell’isola dinamica.

Adobe Experience Platform Mobile SDK fornisce supporto integrato per le 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à.

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

Un’attività Live viene visualizzata tramite widget. Devi creare un bundle 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 le attività live in remoto, ma puoi anche avviarle 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:

TIP
Se riscontri problemi con la registrazione dei token, l'allineamento del payload o la distribuzione delle attività live, consulta Risoluzione dei problemi relativi alle attività live per informazioni dettagliate sul debug.
AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page explains how to integrate the Adobe Experience Platform Mobile SDK into an iOS app so it can register, display, and receive real-time Live activity updates on the Lock Screen and Dynamic Island.

Intents:

  • Import the required modules AEPMessaging, AEPMessagingLiveActivity, and ActivityKit
  • Define Live activity attributes conforming to LiveActivityAttributes, including LiveActivityData and a ContentState
  • Register Live activity types with Messaging.registerLiveActivity() after SDK initialization
  • Create a widget configuration (ActivityConfiguration) for both the Lock Screen and Dynamic Island
  • Optionally start a Live activity locally and add Assurance debug support

Glossary:

  • LiveActivityAttributes: The protocol a struct conforms to, defining both the static data and the dynamic content state for a Live activity (product-specific)
  • LiveActivityData: A required property containing Adobe Experience Platform-specific data; liveActivityID for individual users, channelID for broadcast (product-specific)
  • ContentState: Dynamic data that can be updated during the Live activity lifecycle; must conform to Codable and Hashable
  • LiveActivityOrigin: An enumeration specifying whether an activity was initiated locally or remotely via a push-to-start notification, supported in iOS 17.2 and later (product-specific)
  • Messaging.registerLiveActivity(): The call used after SDK initialization to register Live activity types (product-specific)
  • ActivityConfiguration: The widget configuration implemented for the Lock Screen and Dynamic Island interface
  • LiveActivityAssuranceDebuggable: The protocol implemented to debug Live activity schemas in Adobe Assurance (product-specific)

Guardrails:

  • iOS: 16.1 or later for basic Live activity functionality; 17.2 or later for push-to-start; 18 or later for broadcast channel support (minimum versions).
  • Xcode 14.0 or later (minimum version).
  • Swift 5.7 or later (minimum version).
  • AEP Mobile SDK: iOS Messaging 5.11.0 or later (minimum version).
  • Required dependencies: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
  • liveActivityData is required and contains Adobe Experience Platform-specific data; ContentState must conform to Codable and Hashable.

Terminology:

  • Canonical name: Adobe Experience Platform Mobile SDK — Acronym: AEP Mobile SDK — variants: Mobile SDK, messaging SDK
  • Synonyms: “push-to-start” = “remotely triggered start, supported in iOS 17.2 and later”
  • Do not confuse: “liveActivityID” (individual users) ≠ “channelID” (broadcast)
  • Do not confuse: “start a Live activity locally” (initiated within the application code) ≠ “start remotely via push-to-start” (triggered remotely through Journey Optimizer)

FAQ:

  • Q: Which modules must I import?AEPMessaging, AEPMessagingLiveActivity, and ActivityKit.
  • Q: What is the minimum iOS version? — iOS 16.1 or later for basic functionality; iOS 17.2 or later for push-to-start; iOS 18 or later for broadcast channel support.
  • Q: Which AEP Mobile SDK version is required? — iOS Messaging 5.11.0 or later.
  • Q: How do I register Live activity types? — Use Messaging.registerLiveActivity() in your AppDelegate after SDK initialization; you can register multiple Live activity types.
  • Q: Can I start a Live activity without Journey Optimizer? — Yes, a Live activity can be initiated locally within the application code (optional), in addition to being started remotely through Journey Optimizer.
recommendation-more-help
journey-optimizer-help