Saltar al contenido principal
@capgo/capacitor-background-task API de dispositivos Código abierto

Tarea en segundo plano plugin Capacitor

Programa tareas periódicas de background fetch en iOS y Android con registro de tareas estilo Expo

Instalar

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

Guía

Cómo usar Background Task en Capacitor

Probar en el dispositivo

Descarga la app Capgo y escanea el QR code.

QR de vista previa del plugin Background Task code

Uso de @capgo/capacitor-background-task

Programa tareas periódicas de background fetch en una app Capacitor con tareas con nombre, registro persistente, comprobaciones de estado, desregistro y un trigger de desarrollo. El plugin usa Android WorkManager e iOS BGTaskScheduler.

Instalar

npm install @capgo/capacitor-background-task
npx cap sync

iOS Setup

Añade soporte de procesamiento en segundo plano a ios/App/App/Info.plist:

<key>UIBackgroundModes</key>
<array>
  <string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
  <string>app.capgo.backgroundtask.processing</string>
</array>

Luego ejecuta:

npx cap sync ios

Lo que expone este plugin

  • defineTask - Define el callback de JavaScript para una tarea con nombre.
  • registerTaskAsync - Persiste y programa una tarea periódica.
  • unregisterTaskAsync - Cancela una tarea.
  • isTaskRegisteredAsync - Comprueba el estado de registro de una tarea.
  • getRegisteredTasksAsync - Lista los nombres de tareas registradas.
  • getStatusAsync - Comprueba la disponibilidad de tareas en segundo plano nativas.
  • triggerTaskWorkerForTestingAsync - Dispara las tareas registradas inmediatamente para desarrollo.
  • addExpirationListener - Reacciona cuando iOS expira una tarea.

Ejemplo de uso

Define la tarea en el ámbito del módulo para que esté disponible cuando el SO despierte la app:

import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

const SYNC_TASK = 'sync-offline-data';

BackgroundTask.defineTask(SYNC_TASK, async () => {
  try {
    await fetch('https://api.example.com/sync', { method: 'POST' });
    return BackgroundTaskResult.Success;
  } catch {
    return BackgroundTaskResult.Failed;
  }
});

await BackgroundTask.registerTaskAsync(SYNC_TASK, {
  minimumInterval: 30,
  requiresNetwork: true,
});

Comprueba el estado y los nombres de tareas registradas:

const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();

console.log({ status, tasks });

Dispara una ejecución de desarrollo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Cancelar la tarea:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Notas de la plataforma

  • Los horarios de las tareas en segundo plano son oportunistas, no temporizadores exactos.
  • El trabajo periódico en Android tiene un intervalo mínimo de 15 minutos.
  • iOS trata minimumInterval como fecha de inicio más temprana y puede ejecutarse más tarde.
  • Prueba el procesamiento en segundo plano de iOS en un dispositivo físico.

Referencia completa

Continúa desde Usando @capgo/capacitor-background-task

Si estás usando Uso de @capgo/capacitor-background-task para planificar el trabajo con plugins nativos, conéctalo con @capgo/capacitor-background-task para el detalle de la implementación en @capgo/capacitor-background-task, Primeros pasos para los detalles de implementación en Primeros pasos, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para los detalles de implementación en Capacitor Plugins de Capgo, y Añadir o actualizar plugins para los detalles de implementación al añadir o actualizar plugins.

FAQ

Preguntas frecuentes del plugin Background Task

¿Cómo instalo el plugin Background Task en una app de Capacitor?

Ejecuta &quot;bun add @capgo/capacitor-background-task&quot; (o &quot;npm install @capgo/capacitor-background-task&quot;) y luego ejecuta &quot;bunx cap sync&quot; para que los proyectos de iOS y Android incorporen el código nativo code. Impórtalo desde &quot;@capgo/capacitor-background-task&quot; en el code de tu app.

¿Funciona @capgo/capacitor-background-task con React, Vue y Angular?

Sí. Background Task es un paquete de Capacitor, así que funciona con cualquier framework web que se ejecute dentro de Capacitor, incluyendo Ionic, React, Vue, Angular, Svelte y JavaScript puro.

¿Qué versión de Capacitor soporta @capgo/capacitor-background-task?

Los plugins de Capgo siguen la versión mayor de Capacitor: usa la versión mayor del plugin que coincida con la versión mayor de tu Capacitor (por ejemplo, el plugin v8 con Capacitor 8). La tabla de compatibilidad del README de GitHub lista las versiones mantenidas.

¿Es @capgo/capacitor-background-task gratuito y de código abierto?

Sí. El code es público en GitHub en https://github.com/Cap-go/capacitor-background-task/ y el paquete se puede instalar gratis desde npm. Se agradecen los informes de errores y pull requests.

¿Puedo actualizar code que usa Background Task sin una revisión de la App Store?

Instalar o actualizar el plugin cambia el code nativo, así que requiere un nuevo build para la tienda. Después, los cambios de JavaScript, HTML y CSS que llamen al plugin se pueden publicar al instante con las live updates de Capgo.

Publica cambios de Background Task sin esperar la revisión de la app

Una vez que el plugin esté en tu store build, Capgo live updates envía tus cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Empieza con Capgo