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.
-
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
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: