Allez directement au contenu principal
Capgo logo
Retour aux plugins
@capgo/capacitor-tâche de fond
Tutoriel
@capgo/capacitor-tâche de fond

Tâche de fond

Planifiez des tâches de récupération de fond périodiques sur iOS et Android avec l'enregistrement de tâche Expo-style

Guide

Tutoriel sur la tâche de fond

Tester sur appareil

Téléchargez l'application Capgo, puis scannez le code QR code.

Prévisualisation du plugin de tâche de fond QR code

Utilisez @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 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>

Then run:

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é 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&#39;utilisation.

Définissez la tâche à l'échelle 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é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);

Remarques sur la plateforme

  • Les tâches d'arrière-plan sont planifiées de manière opportuniste, pas des horloges exactes.
  • La période de travail Android a une plage minimale de 15 minutes.
  • iOS traite minimumInterval commencez le plus tôt possible et peuvent s'exécuter plus tard.
  • Testez le traitement d'arrière-plan sur un appareil iOS physique.

Référence complète

Continuez à partir de l'utilisation de @capgo/capacitor-tâche-d'arrière-plan

Si vous utilisez Utilisation de @capgo/capacitor-background-task pour planifier le travail du plugin natif, la connecter avec @capgo/capacitor-task de fond 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 des plugins Capgo pour le 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.