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.
-
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:
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, includingLiveActivityDataand aContentState - 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;liveActivityIDfor individual users,channelIDfor broadcast (product-specific)ContentState: Dynamic data that can be updated during the Live activity lifecycle; must conform toCodableandHashableLiveActivityOrigin: 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 interfaceLiveActivityAssuranceDebuggable: 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.
liveActivityDatais required and contains Adobe Experience Platform-specific data;ContentStatemust conform toCodableandHashable.
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 yourAppDelegateafter 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.