Guide
Tutoriel sur la tâche de fond
Utilisation de @capgo/capacitor-tâche-de-fond
Planifiez des travaux de récupération de fond périodiques dans une application Capacitor avec des tâches nommées, l'enregistrement persistant, les vérifications d'état, la désinscription et un déclencheur de développement. Le plugin utilise Android WorkManager et iOS BGTaskScheduler.
Installation
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>
Ensuite, exécutez :
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.
Exemple d'utilisation
Définir la tâche au niveau 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 de tâches enregistrés :
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);
Notes de plateforme
- Les programmes de tâches d'arrière-plan 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. - Tester la mise en œuvre de fond d'arrière-plan sur un appareil physique iOS.
Référence complète
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- Documentation : /docs/plugins/background-task/
Continuez à partir de l'utilisation de @capgo/capacitor-background-task
Si vous utilisez L'utilisation de @capgo/capacitor-background-task pour planifier le travail de 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 de plugin Capgo pour le flux de travail du 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.