Guía
Tutoría sobre Tarea de Fondo
Usar @capgo/capacitor-tarea-de-fondo
Schedule periodic background fetch work in a Capacitor app with named tasks, persistent registration, status checks, unregistering, and a development trigger. The plugin uses Android WorkManager and iOS BGTaskScheduler.
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é este plugin expone?
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 registrados.getStatusAsync- Verificar 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 ámbito 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,
});
Verificar el estado y los nombres de tarea registrados:
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 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. - Prueba 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 el detalle de implementación en @capgo/capacitor-tarea de fondo, Comenzar para el detalle de implementación en Comenzar, Directorio de Plugins Capgo para el flujo de trabajo del producto en Directorio de Plugins 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.