Guide
Tutoriel sur les tâches de fond
Utiliser @capgo/capacitor-background-task
Planer des travaux de chargement de fond périodique dans une application Capacitor avec des tâches nommées, un enregistrement persistant, des vérifications d'état, la désinscription et un déclencheur de développement. Le plugin utilise WorkManager Android et BGTaskScheduler iOS.
Installer
npm install @capgo/capacitor-background-task
npx cap sync
Configuration iOS
Ajoutez le support de 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>
Exécutez ensuite :
npx cap sync ios
Ce que ce plugin expose
defineTask- Définissez l'appel de rappel JavaScript pour une tâche nommée.registerTaskAsync- Enregistrez et planifiez une tâche périodique.unregisterTaskAsync- Annulez une tâche.isTaskRegisteredAsync- Vérifiez l'état d'enregistrement d'une tâche.getRegisteredTasksAsync- Affichez les noms des tâches enregistrées.getStatusAsync- Vérifiez la disponibilité de la tâche de traitement en arrière-plan native.triggerTaskWorkerForTestingAsync- Déclenchez immédiatement les tâches enregistrées pour le développement.addExpirationListener- Réagissez lorsque iOS expire une tâche.
Utilisation d'exemple
Définissez la tâche au niveau du module afin qu'elle soit disponible lorsque le système réveille l'application : __CAPGO_KEEP_0__
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 de tâches enregistrés : __CAPGO_KEEP_0__
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Déclenchez une exécution de développement : __CAPGO_KEEP_0__
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Annulez la tâche : __CAPGO_KEEP_0__
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Notes de plateforme
- Les calendriers de tâches de fond sont opportunistes, pas des horloges exactes.
- Le travail périodique Android a une plage de 15 minutes minimum.
- iOS traite
minimumIntervalcomme une date de début la plus tôt et peut exécuter plus tard. - Testez la mise en œuvre de fond d'iOS sur un appareil physique.
Référence complète
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- Documentation : /docs/plugins/background-task/
Continuez de l'utilisation de @capgo/capacitor-background-task
Si vous utilisez En utilisant @capgo/capacitor-background-task pour planifier le travail du plugin natif, connectez-le avec @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 Prise en main Répertoire du plugin Capgo pour le flux de produit dans le répertoire de plugin Capgo Capacitor Plugins par Capgo pour le détail d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à jour les plugins pour le détail d'implémentation dans Ajouter ou Mettre à jour les plugins.