Integrazione delle attività live con Adobe Experience Platform Mobile SDK mobile-live-config-sdk
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.
-
Importare i seguenti moduli: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
-
Conforme a
LiveActivityAttributes, includiLiveActivityDatae gli attributiContentState. -
Utilizzare
Messaging.registerLiveActivity()dopo l'inizializzazione di SDK. -
Implementare
ActivityConfigurationsia per l'interfaccia schermata di blocco che per l'interfaccia dell'isola dinamica. -
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.
-
Aggiunta del supporto per il debug (facoltativo)
Implementare
LiveActivityAssuranceDebuggableper 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")
- Per singoli utenti: utilizzare
-
Attributi statici, proprietà personalizzate specifiche del caso d'uso, ad esempio
restaurantName. -
ContentStateche definisce i dati dinamici che possono essere aggiornati durante il ciclo di vita dell'attività Live. Deve essere conforme aCodableeHashable. -
L'enumerazione
LiveActivityOriginspecifica 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: