Aller directement au contenu principal
Retour aux plugins
@capgo/capacitor-task-planif
Tutoriel
par github.com/Cap-go

Tâche de fond

Planifiez des tâches de récupération périodique en arrière-plan sur iOS et Android avec l'enregistrement de tâches Expo-style

Guide

Tutoriel sur les tâches de fond

Utiliser @capgo/capacitor-background-task

Planifiez des tâches 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.

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 les tâches enregistrées immédiatement pour le développement.
  • addExpirationListener - Réagissez lorsque iOS expire une tâche.

Exemples d'utilisation

Définir la tâche au niveau du module afin qu'elle soit disponible lorsque le système 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 calendriers de tâches de fond sont opportunistes, et non des horloges exactes.
  • Le travail périodique Android a un intervalle minimum de 15 minutes.
  • iOS traite minimumInterval comme une date de début la plus tôt et peut exécuter plus tard.
  • Tester la mise en œuvre de fond d'iOS sur un appareil physique.

Référence complète

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, Démarrage pour les détails d'implémentation dans Démarrage, Répertoire du plugin Capgo pour le flux de travail du produit dans Répertoire du plugin Capgo Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à Jour des Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour des Plugins.