Integración de actividades en directo con Adobe Experience Platform Mobile SDK mobile-live-config-sdk
En esta página: Integre Adobe Experience Platform Mobile SDK en su aplicación de iOS para que pueda registrar, mostrar y recibir actualizaciones de actividades en vivo en tiempo real en la pantalla de bloqueo y Dynamic Island.
Adobe Experience Platform Mobile SDK ofrece compatibilidad integrada con las actividades en directo de Apple. Esto permite que la aplicación muestre actualizaciones dinámicas en tiempo real directamente en la pantalla de bloqueo y en Dynamic Island sin necesidad de abrir la aplicación.
-
Importación de módulos necesarios
Importe los siguientes módulos: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
-
Cumplir con
LiveActivityAttributes, incluirLiveActivityDatay un atributoContentState. -
Registrar actividad en directo
Use
Messaging.registerLiveActivity()después de la inicialización de SDK. -
Implemente
ActivityConfigurationtanto para la pantalla bloqueada como para la interfaz de Dynamic Island. -
Iniciar una actividad Live localmente (opcional)
La actividad en directo se puede iniciar de forma remota a través de Journey Optimizer o de forma local dentro del código de la aplicación.
-
Agregar compatibilidad de depuración (opcional)
Implementar
LiveActivityAssuranceDebuggablepara Assurance.
Compruebe que están instaladas las siguientes versiones mínimas para garantizar una configuración y compatibilidad correctas.
Requisitos previos:
-
iOS:
- iOS16.1 o posterior: Funcionalidad básica de actividad en directo
- iOS 17.2+: compatibilidad con push-to-start
- iOS 18+: compatibilidad con el canal de difusión
-
Xcode: 14.0 o posterior
-
Swift: 5.7 o posterior
-
Dependencias: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit
-
AEP Mobile SDK versión: iOS Messaging 5.11.0 o posterior
Paso 1: Importar los módulos necesarios import
Para empezar, primero debe importar los siguientes módulos: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit
Paso 2: definir los atributos de la actividad activa attributes
Cree una estructura que se ajuste al protocolo LiveActivityAttributes. Esto define tanto los datos estáticos como el estado del contenido dinámico para su actividad en directo.
Los componentes clave incluyen:
-
liveActivityData(obligatorio) que contiene datos específicos de Adobe Experience Platform.- Para usuarios individuales: use
LiveActivityData(liveActivityID: "unique-id") - Para difusión: usar
LiveActivityData(channelID: "channel-id")
- Para usuarios individuales: use
-
Atributos estáticos, propiedades personalizadas específicas del caso de uso, por ejemplo
restaurantName. -
ContentState, que define los datos dinámicos que se pueden actualizar durante el ciclo vital de la actividad. Debe ajustarse aCodableyHashable. -
La enumeración
LiveActivityOriginespecifica si una actividad se inició localmente en la aplicación o de forma remota mediante una notificación push-to-start, admitida en iOS 17.2 y versiones posteriores. Este valor permite a SDK diferenciar entre la actividad en directo iniciada localmente y la activada de forma remota durante la recopilación de datos.
Ejemplos
@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
}
También puede registrar varios tipos de actividades en directo para la aplicación:
if #available(iOS 16.1, *) {
Messaging.registerLiveActivity(AirplaneTrackingAttributes.self)
Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
Messaging.registerLiveActivity(GameScoreLiveActivityAttributes.self)
}
Paso 3: Registro de una actividad activa register
Registre los tipos de actividades de Live en su AppDelegate después de la inicialización de SDK, esto le permite:
- Habilita la recopilación automática de tokens de push-to-start (iOS 17.2+)
- Recopila automáticamente tokens de actualización de actividades en directo
- Habilita la administración del ciclo vital y el seguimiento de eventos
Ejemplo de una actividad de entrega de alimentos en directo:
if #available(iOS 16.1, *) {
Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
}
Paso 4: crear widgets de actividad activos widgets
Se muestra una actividad en directo a través de widgets. Debe crear un paquete de widgets y una configuración:
Ejemplo de una actividad de entrega de alimentos en directo:
@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
}
}
}
}
Paso 5: Inicio de una actividad local (opcional) local
Aunque Journey Optimizer puede iniciar actividades Live de forma remota, también puede iniciarlas localmente:
Ejemplo de una actividad de entrega de alimentos en directo:
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
)
Paso 6: Agregar compatibilidad de depuración (opcional) debug
Si es necesario, puede depurar los esquemas de actividad en directo en Adobe Assurance:
Ejemplo de una actividad de entrega de alimentos en directo:
@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")
)
}
}
Recursos adicionales
Para obtener documentación completa de SDK y detalles de la implementación:
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.