Integratie van live-activiteiten met Adobe Experience Platform Mobile SDK mobile-live-config-sdk

De Adobe Experience Platform Mobile SDK biedt ingebouwde ondersteuning voor Apple Live-activiteiten. Hierdoor kan uw app realtime, dynamische updates rechtstreeks weergeven op het Lock Screen en Dynamic Island zonder de app te openen.

  1. Vereiste modules importeren

    Importeer de volgende modules: AEPMessaging, AEPMessagingLiveActivity, ActivityKit .

  2. ​ bepalen attributen ​

    Omgaan met LiveActivityAttributes , neemt u de kenmerken LiveActivityData en a ContentState op.

  3. Live activiteit registreren

    Gebruik Messaging.registerLiveActivity() na SDK-initialisatie.

  4. Widgetconfiguratie maken

    Implementeer ActivityConfiguration voor zowel de interface Scherm vergrendelen als de interface van Dynamic Island.

  5. Live-activiteiten lokaal starten (optioneel)

    Live-activiteiten kunnen op afstand worden gestart via Journey Optimizer of lokaal binnen de toepassingscode.

  6. Ondersteuning voor foutopsporing toevoegen (optioneel)

    Implementeer LiveActivityAssuranceDebuggable voor Assurance.

Controleer of de volgende minimale versies zijn geïnstalleerd om de juiste configuratie en compatibiliteit te garanderen.

recommendation-more-help

Eerste vereisten:

  • iOS:

    • iOS16.1 of later: De basis Levende functionaliteit van de activiteit
    • iOS 17.2+: Push-to-start steun
    • iOS 18+: De steun van het Kanaal van de uitzending
  • Xcode: 14.0 of later

  • Swift: 5.7 of later

  • Afhankelijkheden: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit

  • AEP Mobile SDK versie: Het Overseinen van iOS 5.11.0 of later

Stap 1: Vereiste modules importeren import

Om aan de slag te gaan, moet u eerst de volgende modules importeren: AEPMessaging, AEPMessagingLiveActivity, ActivityKit .

import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit

Stap 2: Definieer de kenmerken van uw actieve activiteit attributes

Maak een structuur die voldoet aan het protocol LiveActivityAttributes . Hiermee definieert u zowel de statische gegevens als de dynamische inhoudsstatus voor uw Live-activiteit.

De belangrijkste componenten zijn:

  • liveActivityData (vereist) dat Adobe Experience Platform-specifieke gegevens bevat.

    • Voor individuele gebruikers: gebruik LiveActivityData(liveActivityID: "unique-id")
    • Voor uitzending: gebruik LiveActivityData(channelID: "channel-id")
  • Statische kenmerken, aangepaste eigenschappen die specifiek zijn voor uw gebruiksscenario, bijvoorbeeld restaurantName .

  • ContentState definieert dynamische gegevens die kunnen worden bijgewerkt tijdens de levenscyclus van Live-activiteit. De eigenschap moet Codable en Hashable bevatten.

  • Met LiveActivityOrigin wordt aangegeven of een activiteit lokaal binnen de app is gestart of op afstand via een pushmelding, ondersteund in iOS 17.2 en hoger. Met deze waarde kan de SDK onderscheid maken tussen lokaal geïnitieerde en extern geactiveerde Live-activiteit tijdens het verzamelen van gegevens.

Voorbeelden

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

U kunt ook meerdere typen Live-activiteiten registreren voor uw app:

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

Stap 3: Live-activiteiten registreren register

Registreer de typen Live-activiteiten in uw AppDelegate na de SDK-initialisatie. U kunt dan het volgende doen:

  • Schakelt automatische push-to-start tokenverzameling in (iOS 17.2+)
  • Automatisch tokens voor updates van actieve activiteiten verzamelen
  • Maakt levenscyclusbeheer en gebeurtenistracering mogelijk

Voorbeeld voor een Levende activiteit van de voedsellevering:

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

Stap 4: Live-activiteiten-widgets maken widgets

Live-activiteit wordt via widgets weergegeven. U moet een widgetbundel en -configuratie maken:

Voorbeeld voor een Levende activiteit van de voedsellevering:

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

Stap 5: Een actieve activiteit lokaal starten (optioneel) local

Hoewel Journey Optimizer op afstand Live-activiteiten kan starten, kunt u deze ook lokaal starten:

Voorbeeld voor een Levende activiteit van de voedsellevering:

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
)

Stap 6: Ondersteuning voor foutopsporing toevoegen (optioneel) debug

Indien nodig kunt u fouten in Live activity-schema's opsporen in Adobe Assurance:

Voorbeeld voor een Levende activiteit van de voedsellevering:

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

Aanvullende bronnen

Voor uitgebreide documentatie en implementatiedetails van SDK:

TIP
Als u kwesties met symbolische registratie, loonlastgroepering, of de Levende levering van de Activiteit ervaart, zie ​ Levende Activiteiten ​ voor gedetailleerde het zuiveren begeleiding problemen oplossen.
b22c9c5d-9208-48f4-b874-1cefb8df4d76