Passer à la navigation principale
Retour aux plugins
@capgo/capacitor-tâche-en-arrière-plan
Tutoriel
@capgo/capacitor-tâche-en-arrière-plan

Tâche en arrière-plan

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

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 QR de la tâche de fond code

Utilisation de @capgo/capacitor-tâche-de-fond

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. Le plugin utilise WorkManager Android et BGTaskScheduler iOS.

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 ce plugin 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 à l'échelle du module afin qu'elle soit disponible lorsque le système active 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 plans de 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 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 iOS.

Référence complète

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

Si vous utilisez L'utilisation de @capgo/capacitor-tâche-d'arrière-plan pour planifier le travail de plugin natif, connectez-l’avec @capgo/capacitor-tâche-d'arrière-plan pour le détail d'implémentation dans @capgo/capacitor-background-task, Prise en main pour le détail d'implémentation dans Prise en main, Répertoire du plugin Capgo pour le flux de travail du produit dans Répertoire du plugin Capgo, Plugins Capacitor par Capgo pour le détail d'implémentation dans Plugins Capacitor par Capgo, et Ajouter ou mettre à jour des plugins pour le détail d'implémentation dans Ajouter ou mettre à jour des plugins.