Guide
Comment utiliser la tâche de fond dans Capacitor
Utilisez @capgo/capacitor-background-task
Planifiez des travaux de récupération de fond périodique dans une application Capacitor avec des tâches nommées, une inscription persistante, des vérifications d'état, la désinscription 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 un support de traitement de fond à ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
Then run:
npx cap sync ios
Ce que ce plugin expose
defineTask- Définissez l'appel de rappel 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- Afficher les noms des tâches enregistrées.getStatusAsync- Vérifier la disponibilité des tâches de fond natives.triggerTaskWorkerForTestingAsync- Déclencher les tâches enregistrées immédiatement pour le développement.addExpirationListener- Réagir lorsque iOS expire une tâche.
Exemple d'utilisation
Définir la tâche à l'échelle du module afin qu'elle soit disponible lorsque l'OS réveille l'application :
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érifier 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éclencher une exécution de développement :
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Annuler la tâche :
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Remarques sur la plateforme
- Les tâches d'arrière-plan sont planifiées à l'occasion, pas des horloges exactes.
- La période de travail Android a une plage minimale de 15 minutes.
- iOS traite
minimumIntervalcommencez le plus tôt possible et peuvent s'exécuter plus tard. - Testez le traitement d'arrière-plan sur un appareil iOS physique.
Référence complète
- GitHub: https://github.com/Cap-go/capacitor-tâche-de-fond/
- Documentation : /docs/plugins/tâche-de-fond/
Continuez à partir de l'utilisation de @capgo/capacitor-tâche-de-fond
Si vous utilisez Utilisation de @capgo/capacitor-background-task pour planifier le travail du plugin natif, le connecter avec @capgo/capacitor-task-planifiaison-en-arrière-plan pour les détails d'implémentation dans @capgo/capacitor-background-task, Prise en main pour les détails d'implémentation dans Prise en main, Répertoire des plugins Capgo pour le flux de travail du produit dans Répertoire des plugins Capgo, Plugins Capacitor par Capgo pour les détails d'implémentation dans Plugins Capacitor par Capgo, et Ajout ou mise à jour des plugins pour les détails d'implémentation dans Ajout ou mise à jour des plugins.