Pasar al contenido principal
@capgo/capacitor-actividades en vivo Interfaz y Sistema Fuente abierta

Actividades en vivo plugin de Capacitor

Gestione layouts de Actividades en vivo de iOS y Dynamic Island desde Capacitor con plantillas impulsadas por JSON

Instalar

bun add @capgo/capacitor-live-activities bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/capacitor-live-activities
  • pnpm add @capgo/capacitor-live-activities
  • yarn add @capgo/capacitor-live-activities

Guía

Cómo usar Actividades en vivo en Capacitor

Usando @capgo/capacitor-live-activities

Capacitor Plugin de Actividades en vivo de Capacitor para gestionar Actividades en vivo de iOS.

Instalar

bun add @capgo/capacitor-live-activities
bunx cap sync

iOS Setup

Instalando y sincronizando el plugin no crea la interfaz de usuario nativa de Live Activity. Antes de llamar startActivityconfigure ActivityKit en Xcode:

  1. Ejecutar bunx cap open ios.
  2. Agregar un Extensión de Widget Extensión de Widget Incluya Actividad en Vivo.
  3. Establezca los objetivos de despliegue de la aplicación y la extensión de Widget a iOS 16.1 o posterior.
  4. Asegúrese de que la extensión esté integrada en la aplicación principal.
  5. Mantén un ActivityConfiguration registrado en la extensión's WidgetBundle, con Pantalla de Bloqueo y todas las presentaciones de Dynamic Island.
  6. Agregar NSSupportsLiveActivities hacia la aplicación principal objetivo Info.plist.
<key>NSSupportsLiveActivities</key>
<true/>

Adding the target alone is not sufficient. The native app or plugin must call ActivityKit&#39;s request, update, and end APIs. The Widget Extension must contain SwiftUI code that can decode and render the same ActivityAttributes Agregar el objetivo principal solo no es suficiente. La aplicación nativa o el plugin deben llamar a las API de solicitud, actualización y finalización de ActivityKit. La extensión de Widget debe contener SwiftUI __CAPGO_KEEP_0__ que pueda descodificar y renderizar el mismo

Imagenes Compartidas

Cuando utilices los métodos de gestión de imágenes, agregue App Groups capacidad a la aplicación principal y a los objetivos de la extensión de Widget. Active el mismo grupo en ambos objetivos utilizando el identificador exacto esperado por el plugin:

group.<MAIN_APP_BUNDLE_ID>.liveactivities

capacidad a la aplicación principal y la extensión de Widget. Active el mismo grupo en ambos objetivos utilizando el identificador exacto esperado por el plugin: saveImagey luego refiera la imagen guardada desde la configuración de la vista. Los activos empaquetados también deben pertenecer al objetivo de extensión de la vista.

Enlaces Profundos y Actualizaciones de Aplicación

  • Register any custom URL scheme used by behavior.widgetUrl o tapUrl bajo el objetivo principal de la aplicación Información > Tipos de URL o
  • For server-driven updates, add the Notificaciones de Pulsación habilidad y implementar el manejo de tokens de ActivityKit con APNs.
  • o NSSupportsLiveActivitiesFrequentUpdates solo cuando la aplicación requiere actualizaciones de push de ActivityKit con frecuencia.

Habilitar la capacidad de notificaciones push en sí no es suficiente; se requieren actualizaciones impulsadas por el servidor y un backend APNs con manejo de tokens nativos.

La ActivityKit limita los datos de Actividad en vivo estáticos y dinámicos a 4 KB. El Isla Dinámica solo está visible en modelos de dispositivos compatibles; otros dispositivos utilizan la presentación de pantalla de bloqueo.

¿Qué Este Plugin Exposa

  • areActivitiesSupported - Verificar si las Actividades en vivo están soportadas en este dispositivo. Requiere iOS 16.1+ y soporte de dispositivo.
  • startActivity - Iniciar una nueva Actividad en vivo con el diseño especificado y los datos.
  • updateActivity - Actualizar una Actividad en vivo existente con nuevos datos.
  • endActivity - Finalizar una Actividad en vivo.

Uso de Ejemplo

areActivitiesSupported

- Verificar si las Actividades en vivo están soportadas en este dispositivo. Requiere iOS 16.1+ y soporte de dispositivo.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

const { supported, reason } = await CapgoLiveActivities.areActivitiesSupported();
if (supported) {
  console.log('Live Activities are supported!');
} else {
  console.log('Not supported:', reason);
}

startActivity

- Iniciar una nueva Actividad en vivo con el diseño especificado y los datos.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

const { activityId } = await CapgoLiveActivities.startActivity({
  layout: {
    type: 'container',
    direction: 'horizontal',
    children: [
      { type: 'text', content: 'Order #{{orderNumber}}', fontSize: 16, fontWeight: 'bold' },
      { type: 'text', content: '{{status}}', fontSize: 14, color: '#666666' }
    ]
  },
  dynamicIslandLayout: {
    expanded: {
      leading: { type: 'image', source: 'sfSymbol', value: 'box.truck' },
      trailing: { type: 'text', content: '{{eta}}' },
      center: { type: 'text', content: '{{status}}' },
      bottom: { type: 'progress', value: 'progress' }
    },
    compactLeading: { type: 'image', source: 'sfSymbol', value: 'box.truck' },
    compactTrailing: { type: 'text', content: '{{eta}}' },
    minimal: { type: 'image', source: 'sfSymbol', value: 'box.truck' }
  },
  data: {
    orderNumber: '12345',
    status: 'On the way',
    eta: '10 min',
    progress: 0.6
  }
});
console.log('Started activity:', activityId);

updateActivity

- Actualizar una Actividad en vivo existente con nuevos datos.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

await CapgoLiveActivities.updateActivity({
  activityId: 'abc123',
  data: {
    status: 'Arrived!',
    eta: 'Now',
    progress: 1.0
  },
  alertConfiguration: {
    title: 'Delivery Update',
    body: 'Your order has arrived!'
  }
});

endActivity

- Finalizar una Actividad en vivo.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

await CapgoLiveActivities.endActivity({
  activityId: 'abc123',
  data: { status: 'Delivered' },
  dismissalPolicy: 'after',
  dismissAfter: Date.now() + 3600000 // 1 hour from now
});

Referencia Completa

Sigue adelante desde Usando @capgo/capacitor-actividades-en-vivo

Si estás utilizando Usando @capgo/capacitor-actividades-en-vivo para planificar el comportamiento de medios y interfaz nativa, conecta con @capgo/capacitor-actividades-en-vivo para los detalles de implementación en @capgo/capacitor-actividades-en-vivo Getting Started para los detalles de implementación en Iniciación Usando @capgo/capacitor-reproductor-de-videos para la capacidad nativa en Usando @capgo/capacitor-reproductor-de-videos, @capgo/capacitor-reproductor-de-videos para el detalle de implementación en @capgo/capacitor-reproductor-de-videos, y Usando @capgo/capacitor-navegación-nativa para la capacidad nativa en Usando @capgo/capacitor-navegación-nativa.

FAQ

Preguntas frecuentes del plugin de Actividades en vivo

¿Cómo instalo el plugin de Actividades en vivo en una aplicación Capacitor?

Run &quot;bun add @capgo/capacitor-live-activities&quot; (or &quot;npm install @capgo/capacitor-live-activities&quot;), then run &quot;bunx cap sync&quot; so the iOS and Android projects pick up the native code. Import it from &quot;@capgo/capacitor-live-activities&quot; in your app code.

¿Funciona @capgo/capacitor-live-activities con React, Vue y Angular?

Yes. Live Activities is a Capacitor package, so it works with any web framework that runs inside Capacitor, including Ionic, React, Vue, Angular, Svelte and plain JavaScript.

¿Qué versión de Capacitor soporta @capgo/capacitor-live-activities?

Capgo plugins follow Capacitor&#39;s major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

¿Es @capgo/capacitor-actividades en vivo de código abierto y gratuito?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-live-activities/ and the package is free to install from npm. Bug reports and pull requests are welcome.

Puedo actualizar code que utiliza Actividades en vivo sin una revisión de la Tienda?

Instalar o actualizar el complemento cambia el code nativo, por lo que necesita una nueva compilación de la tienda. Después de eso, los cambios en JavaScript, HTML y CSS que llaman al complemento pueden enviar actualizaciones en vivo con Capgo instantáneamente.

Envíe cambios de Actividades en vivo sin esperar a la revisión de la aplicación

Una vez que el plugin esté en tu tienda de construcción, Capgo actualizaciones en vivo envían cambios en JavaScript, HTML y CSS a los usuarios en minutos.

Inicie con Capgo