Integrering med Adobe Experience Platform Mobile SDK mobile-live-config-sdk

Adobe Experience Platform Mobile SDK har inbyggt stöd för Apple Live. På så sätt kan appen visa dynamiska uppdateringar i realtid direkt på låsskärmen och Dynamic Island utan att öppna appen.

  1. Importera nödvändiga moduler

    Importera följande moduler: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

  2. Definiera attribut

    Följ LiveActivityAttributes, ta med LiveActivityData och ett ContentState-attribut.

  3. Registrera aktivitet live

    Använd Messaging.registerLiveActivity() efter SDK-initiering.

  4. Skapa widgetkonfiguration

    Implementera ActivityConfiguration för både Lock Screen och Dynamic Island.

  5. Starta en Live-aktivitet lokalt (valfritt)

    Live-aktiviteten kan initieras via Journey Optimizer eller lokalt i programkoden.

  6. Lägg till stöd för felsökning (valfritt)

    Implementera LiveActivityAssuranceDebuggable för Assurance.

Kontrollera att följande minimiversioner är installerade för att säkerställa korrekt konfiguration och kompatibilitet.

recommendation-more-help

Förutsättningar:

  • iOS:

    • iOS16.1 eller senare: Grundläggande funktioner för Live-aktivitet
    • iOS 17.2+: Stöd för push-to-start
    • iOS 18+: Stöd för sändningskanaler
  • Xcode: 14.0 eller senare

  • Swift: 5.7 eller senare

  • Beroenden: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit

  • AEP Mobile SDK version: iOS Messaging 5.11.0 eller senare

Steg 1: Importera nödvändiga moduler import

För att komma igång måste du först importera följande moduler: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit

Steg 2: Definiera aktivitetsattribut attributes

Skapa en struktur som följer protokollet LiveActivityAttributes. Detta definierar både statiska data och läget för dynamiskt innehåll för din Live-aktivitet.

Nyckelkomponenterna är:

  • liveActivityData (krävs) som innehåller Adobe Experience Platform-specifika data.

    • För enskilda användare: Använd LiveActivityData(liveActivityID: "unique-id")
    • För sändning: Använd LiveActivityData(channelID: "channel-id")
  • Statiska attribut, anpassade egenskaper som är specifika för ditt användningsfall, t.ex. restaurantName.

  • ContentState som definierar dynamiska data som kan uppdateras under Live-aktivitetens livscykel. Den måste överensstämma med Codable och Hashable.

  • LiveActivityOrigin-uppräkningen anger om en aktivitet initierades lokalt i appen eller via fjärråtkomst via ett push-to-start-meddelande, som stöds i iOS 17.2 och senare. Med det här värdet kan SDK skilja mellan lokalt initierad och fjärraktiverad Live-aktivitet under datainsamling.

Exempel

@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
}

Du kan även registrera flera Live-aktivitetstyper för din app:

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

Steg 3: Registrera Live-aktivitet register

Registrera dina Live-aktivitetstyper i din AppDelegate efter SDK-initiering, vilket gör att du kan:

  • Aktiverar automatisk push-to-start-tokensamling (iOS 17.2+)
  • Samlar in token för Live-aktivitetsuppdatering automatiskt
  • Möjliggör livscykelhantering och händelsespårning

Exempel på en live-aktivitet för matleveranser:

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

Steg 4: Skapa Live-aktivitetswidgetar widgets

Live-aktiviteten visas via widgetar, du måste skapa ett widgetpaket och en konfiguration:

Exempel på en live-aktivitet för matleveranser:

@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
            }
        }
    }
}

Steg 5: Starta en Live-aktivitet lokalt (valfritt) local

Journey Optimizer kan fjärrstarta Live-aktiviteten, men du kan även starta den lokalt:

Exempel på en live-aktivitet för matleveranser:

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
)

Steg 6: Lägg till stöd för felsökning (valfritt) debug

Om det behövs kan du felsöka Live-aktivitetsscheman i Adobe Assurance:

Exempel på en live-aktivitet för matleveranser:

@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")
        )
    }
}

Ytterligare resurser

Omfattande SDK-dokumentation och implementeringsinformation:

TIP
Om du har problem med tokenregistrering, nyttolastjustering eller leverans av Live-aktivitet kan du läsa Felsöka Live-aktiviteter för detaljerad felsökningsvägledning.
b22c9c5d-9208-48f4-b874-1cefb8df4d76