Guide
Tutoriel sur la tâche de fond
Utilisation de @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. L'extension utilise Android WorkManager et iOS BGTaskScheduler.
Installation
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>
Ensuite, exécutez :
npx cap sync ios
Ce que cette extension expose
defineTask- Définissez l'appel de callback JavaScript pour une tâche nommée.registerTaskAsync- Persistez et planifiez une tâche périodique.unregisterTaskAsync- Annulez une tâche.isTaskRegisteredAsync- Vérifiez l'état d'inscription d'une tâche.getRegisteredTasksAsync- Liste les noms des tâches enregistrées.getStatusAsync- Vérifiez la disponibilité des tâches de fond natives.triggerTaskWorkerForTestingAsync- Déclenchez les tâches enregistrées immédiatement pour le développement.addExpirationListener- Réagissez lorsque iOS expire une tâche.
- Exemple d'utilisation.
- Définissez 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é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();
- Annulez la tâche :
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
- Notes de plateforme.
- - Les calendriers des tâches de fond sont opportunistes, pas des horloges exactes.
- - Le travail périodique Android a un intervalle minimum de 15 minutes.
- 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'arrière-plan sur un appareil physique.
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-l’avec @capgo/capacitor-background-task pour les détails d'implémentation dans @capgo/capacitor-task d'arrière-plan, Prise en main pour les détails d'implémentation dans Prise en main, Répertoire des plugins Capgo pour les détails du 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 Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Ajouter ou mettre à jour des plugins.