Saltar al contenido

Getting Started

GitHub

@capgo/capacitor-background-task permite que una aplicación Capacitor se registre trabajos periódicos nombrados para sincronización, refrescos de caché, entrega de análisis y otras operaciones de recuperación de fondo.

Puedes utilizar nuestra configuración asistida por IA para instalar el plugin. Agrega las habilidades Capgo a tu herramienta de IA utilizando el siguiente comando:

Ventana del terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Luego utilice la siguiente solicitud:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.

Si prefiere la configuración manual, instale el plugin ejecutando los siguientes comandos y siguiendo las instrucciones específicas de la plataforma a continuación:

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

Agregue el modo de procesamiento de fondo y el identificador de tarea permitido 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 ejecute:

Ventana del terminal
npx cap sync ios
import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

Definir el callback en el ámbito del módulo para que se registre tan pronto como la aplicación se inicie por parte del sistema operativo.

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

Llamar registerTaskAsync después de que tu aplicación tenga suficiente contexto para habilitar el trabajo de fondo.

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

minimumInterval dura __CAPGO_KEEP_0__ minutos. Android impone un mínimo de 15 minutos. iOS trata el valor como una fecha de inicio más temprana y puede ejecutarse más tarde.

const status = await BackgroundTask.getStatusAsync();
const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);
const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });

Utiliza el disparador de prueba en desarrollo o QA. Llama a cada tarea registrada de inmediato.

await BackgroundTask.triggerTaskWorkerForTestingAsync();
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

iOS puede detener una tarea de fondo antes de que termine su trabajo de JavaScript. Escuche los eventos de vencimiento cuando importa la limpieza o el punto de control.

const expiration = await BackgroundTask.addExpirationListener((event) => {
console.warn('Background task expired', event.taskName, event.taskId);
});
await expiration.remove();

Compatibilidad de la tarea de fondo de React Native

Sección titulada “Compatibilidad de la tarea de fondo de React Native”

El plugin también expone una pequeña capa de compatibilidad para aplicaciones que migran desde react-native-background-task.

import { BackgroundTask } from '@capgo/capacitor-background-task';
BackgroundTask.define(async () => {
await fetch('https://api.example.com/sync', { method: 'POST' });
});
await BackgroundTask.schedule({
period: 1800,
});

Sección titulada “Notas de producción”

La programación de fondo es oportunista, no exacta.
  • Copiar a portapapeles
  • Mantén el trabajo corto y idempotente.
  • Almacena cualquier estado que necesites antes de devolver BackgroundTaskResult.Success.
  • Evita confiar en tareas de fondo para plazos o alarmas visibles para el usuario.

Si estás utilizando Getting Started para planificar el trabajo de plugin nativo, conecta con Usando @capgo/capacitor-tarea-de-fondo para la capacidad nativa en Usando @capgo/capacitor-tarea-de-fondo, Capgo Directorio de Plugin para el flujo de trabajo del producto en Capgo Directorio de Plugin, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins, y Alternativas de Plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas de Plugins de Ionic Enterprise.