Saltar al contenido

Getting Started

GitHub

@capgo/capacitor-background-task permite a una aplicación Capacitor registrar tareas periódicas para sincronización, refrescos de caché, entrega de análisis y otras operaciones de recuperación de fondo.

You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:

Ventana de 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 complemento ejecutando los siguientes comandos y siguiendo las instrucciones específicas de la plataforma a continuación:

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

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

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

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

Call registerTaskAsync after your app has enough context to enable the background job.

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

minimumInterval El valor se considera 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 });

Desencadenar una ejecución de prueba

Desencadenar una ejecución de prueba

Utiliza el desencadenante 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 tu trabajo de JavaScript. Escucha eventos de expiración 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 Tarea de Fondo de React Native

Sección titulada “Compatibilidad de 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,
});
  • La programación en segundo plano es oportunista, no exacta.
  • Mantén el trabajo corto y idempotente.
  • Persist any state you need before returning BackgroundTaskResult.Success.
  • Evite confiar en tareas de fondo para plazos o alarmas visibles para el usuario.

Si estás utilizando Getting Started to plan native plugin work, connect it with Usando @capgo/capacitor-tarea-en-fondo para la capacidad nativa en Usando @capgo/capacitor-tarea-en-fondo, Capgo Directorio de Plugin para el flujo de trabajo del producto en el directorio de Capgo Capacitor Plugins por Capgo para el detalle de implementación en Capacitor Plugins por 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 Ionic Enterprise Plugin Alternatives.