Guide
Comment utiliser Background Task dans Capacitor
Utilisation de @capgo/capacitor-background-task
Planifiez des tâches de récupération en arrière-plan périodiques dans une application Capacitor avec des tâches nommées, une enregistrement persistant, des vérifications d’état, un désenregistrement et un déclencheur de développement. Le plugin utilise Android WorkManager et iOS BGTaskScheduler.
Installer
npm install @capgo/capacitor-background-task
npx cap sync
Configuration iOS
Ajoutez le support du traitement en arrière-plan à ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
Ensuite, lancez :
npx cap sync ios
Ce que ce plugin expose
defineTask- Définir le callback JavaScript pour une tâche nommée.registerTaskAsync- Persister et planifier une tâche périodique.unregisterTaskAsync- Annuler une tâche.isTaskRegisteredAsync- Vérifier l'état d'enregistrement d'une tâche.getRegisteredTasksAsync- Lister les noms des tâches enregistrées.getStatusAsync- Vérifier la disponibilité des tâches de fond natives.triggerTaskWorkerForTestingAsync- Déclencher immédiatement les tâches enregistrées pour le développement.addExpirationListener- Réagir quand iOS expire une tâche.
Exemple d'utilisation
Define the task at module scope so it is available when the OS wakes the app:
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,
});
Vérifiez l'état et les noms des tâches enregistrées :
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Déclenchez une exécution de développement :
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Annuler la tâche :
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Notes de plateforme
- Les planifications de tâches de fond sont opportunistes, pas des minuteurs exacts.
- Le travail périodique sur Android a un intervalle minimum de 15 minutes.
- iOS traite
minimumIntervalcomme date de début au plus tôt et peut s'exécuter plus tard. - Testez le traitement en arrière-plan iOS sur un appareil physique.
Référence complète
- GitHub : https://github.com/Cap-go/capacitor-background-task/
- Docs : /docs/plugins/background-task/
Continuer depuis Utiliser @capgo/capacitor-background-task
Si vous utilisez Utilisation de @capgo/capacitor-background-task pour planifier le travail sur les plugins natifs, connectez-l’à @capgo/capacitor-background-task pour les détails d’implémentation dans @capgo/capacitor-background-task, Prise en main pour les détails d'implémentation dans Getting Started Capgo Répertoire des plugins pour le workflow produit dans Capgo Plugin Directory, Plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo, et Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Adding or Updating Plugins.