Saltar al contenido principal
Volver a plugins
@capgo/capacitor-tarea-de-fondo
Tutoriales
@capgo/capacitor-tarea-de-fondo

Tarea de fondo

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

Guía

Tutorial sobre Tarea de Fondo

Probar en dispositivo

Descargar la aplicación Capgo, luego escanea el código QR code.

Vista previa del plugin de tarea de fondo code

Usando @capgo/capacitor-tarea-de-fondo

Programar un trabajo de recarga de fondo periódico en una aplicación Capacitor con tareas nombradas, registro persistente, verificación de estado, desregistro y un desencadenante de desarrollo.

Instalar

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

Configuración de iOS

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

npx cap sync ios

¿Qué Exposición de este Plugin?

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

Ejemplo de uso

Define la tarea en el alcance del módulo para que esté disponible cuando el sistema operativo despierte 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,
});

Ver el estado y nombres de tarea registrada:

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

console.log({ status, tasks });

Desencadenar un ejecución de desarrollo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Cancelar la tarea:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Notas de plataforma

  • Las tareas de fondo son programadas de manera oportunista, no son temporizadores exactos.
  • Android periodic work tiene un mínimo de intervalo de 15 minutos.
  • iOS maneja minimumInterval como una fecha de inicio más temprana y puede ejecutarse más tarde.
  • Prueba el 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 el detalle de implementación en @capgo/capacitor-tarea de fondo, Inicio para el detalle de implementación en Inicio, Directorio de Plugins de Capgo para el flujo de trabajo del producto en Directorio de Plugins de Capgo, Plugins de Capacitor por Capgo para el detalle de implementación en Plugins de Capacitor por Capgo, y Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins.