Allez directement au contenu principal
Retour aux plugins
@capgo/capacitor-background-task
Tutoriel
@capgo/capacitor-background-task

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.

Background Task plugin preview QR code

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, une inscription persistante, des vérifications d'état, la désinscription et un déclencheur de développement.

Installez

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>

Exécutez ensuite :

npx cap sync ios

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 - 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 à 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 exécution de développement :

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Annulez la tâche :

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Remarques sur la 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 minimumInterval comme date de début la plus ancienne et peut s'exécuter plus tard.
  • Testez la mise en arrière-plan iOS sur un appareil physique.

Référence complète

Continuez à partir de l'utilisation de @capgo/capacitor-tâche-de-fond

Si vous utilisez L'utilisation de @capgo/capacitor-tâche-de-fond pour planifier le travail de plugin natif, connectez-le avec @capgo/capacitor-tâche-de-fond pour les détails d'implémentation dans @capgo/capacitor-task de fond Démarrage pour les détails d'implémentation dans Démarrage Capgo Répertoire des plugins pour le flux de travail du produit dans Capgo Répertoire des plugins Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins