Saltar al contenido principal
Volver a plugins
@capgo/capacitor-tarea-de-fondo
Tutoriales
por github.com/Cap-go

Tarea de fondo

Programar tareas de fondo periódicas en iOS y Android con la inscripción de tarea de Expo

Guía

Tutorial sobre tarea de fondo

Usando @capgo/capacitor-tarea-de-fondo

Programar trabajo de recarga periódica de fondo en una aplicación Capacitor con tareas nombradas, registro persistente, verificación de estado, desregistro y un desencadenante de desarrollo. El complemento utiliza Android WorkManager y iOS BGTaskScheduler.

Instalar

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

Configuración de iOS

Agregar soporte de procesamiento de fondo 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 ejecute:

npx cap sync ios

¿Qué Exposición de este Plugin?

  • defineTask - Defina el callback de JavaScript para una tarea nombrada.
  • registerTaskAsync - Persista y programar una tarea periódica.
  • unregisterTaskAsync - Cancelar una tarea.
  • isTaskRegisteredAsync - Verificar el estado de registro de una tarea.
  • getRegisteredTasksAsync - Listar nombres de tareas registradas.
  • getStatusAsync - Verificar la disponibilidad de tareas de fondo nativas.
  • triggerTaskWorkerForTestingAsync - Desencadenar tareas registradas inmediatamente para desarrollo.
  • addExpirationListener - Reaccionar cuando iOS expira una tarea.

Ejemplo de uso

Define la tarea a nivel de módulo para que esté disponible cuando el sistema active la aplicación:

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,
});

Verificar el estado y los nombres de tareas registradas:

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

console.log({ status, tasks });

Ejecutar una compilación de desarrollo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Cancelar la tarea:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Notas de plataforma

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

Referencia completa

Sigue adelante desde Usando @capgo/capacitor-tarea-de-fondo

Si estás utilizando Usando @capgo/capacitor-tarea-de-fondo para planificar el trabajo de plugin nativo, conecta con @capgo/capacitor-tarea-de-fondo para los detalles de implementación en @capgo/capacitor-tarea-de-fondo, Inicio para los detalles de implementación en Inicio, Directorio de Plugin de Capgo para el flujo de trabajo del producto en Directorio de Plugin de Capgo, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, and Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins.