Guía
Tutorial sobre Tarea de Fondo
Usando @capgo/capacitor-tarea-de-fondo
Programar tareas de trabajo de recuperación de fondo periódicas en una aplicación Capacitor con tareas nombradas, inscripción persistente, verificación de estado, desinscripción y un desencadenante de desarrollo. El plugin 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 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:
npx cap sync ios
¿Qué expone este complemento?
defineTask- Define 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 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.
Uso de ejemplo
Define la tarea en el ámbito del 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 las tareas registradas:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Desencadenar una ejecución de desarrollo:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Cancelar la tarea:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Nota de plataforma
- Las programaciones 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
minimumIntervalcomo una fecha de inicio más temprana y puede ejecutarse más tarde. - Probar el procesamiento de fondo de iOS en un dispositivo físico.
Referencia completa
- GitHub: https://github.com/Cap-go/capacitor-tarea-de-fondo/
- Documentación: /docs/plugins/tarea-de-fondo/
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 Plugins de Capgo para el flujo de trabajo del producto en el directorio de plugins 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.