Saltar al contenido

Getting Started

GitHub

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

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

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

Luego utiliza el siguiente prompt:

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

Si prefieres la configuración manual, instala el complemento ejecutando los siguientes comandos y sigue las instrucciones específicas de la plataforma a continuación:

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

Agrega 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 ejecuta:

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

Define la llamada a función en el ámbito del módulo para que se registre tan pronto como se inicie la aplicación 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 contexto

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

minimumInterval es en 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 });

Utilice 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 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 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 de fondo es oportunista, no exacta.
  • Mantenga el trabajo corto e idéntico.
  • Persista cualquier estado que necesite antes de devolver BackgroundTaskResult.Success.
  • Evite confiar en las tareas de fondo para plazos visibles para el usuario o alarmas.

Si está utilizando Inicio rápido para planificar el trabajo de plugin nativo, conecte con Usando @capgo/capacitor-tarea-de-fondo para la capacidad nativa en Usando @capgo/capacitor-tarea-de-fondo, Capgo Carpeta del plugin para el flujo de trabajo del producto en Capgo Carpeta del plugin 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 Alternativas de Plugins de Ionic Enterprise.