Guide
Tutoriel sur la tâche de fond
Utiliser @capgo/capacitor-tâche-de-fond
Planifiez des tâches 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.
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>
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- Persistez et planifiez une tâche périodique.unregisterTaskAsync- Annuler une tâche.isTaskRegisteredAsync- Vérifier l'état d'enregistrement d'une tâche.getRegisteredTasksAsync- Liste les noms des tâches enregistrées.getStatusAsync- Vérifier la disponibilité d'une tâche de fond native.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éfinissez la tâche à l'échelle du module afin qu'elle soit disponible lorsque l'appareil se 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 session de développement :
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Annulez la tâche :
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Remarques sur les plateformes
- Les tâches de fond sont planifiées de manière opportuniste, et non comme des horloges exactes.
- La période de travail Android a un minimum d'intervalle 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'iOS sur un appareil physique.
Référence complète
- GitHub: https://github.com/Cap-go/capacitor-tâche-de-fond/
- Docs: /docs/plugins/tâche-de-fond/
Continuez à partir de l'utilisation de @capgo/capacitor-tâche-de-fond
Si vous utilisez L'utilisation de @capgo/capacitor-tâche-de-fond planer le travail de plugin natif, le connecter avec @capgo/capacitor-tâche de fond pour les détails d'implémentation dans @capgo/capacitor-tâche de fond, Démarrage pour les détails d'implémentation dans Démarrage, Répertoire de plugin Capgo pour le flux de travail du produit dans Répertoire de plugin Capgo, Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à jour les Plugins.