Allez directement au contenu principal
Retour aux plugins
@capgo/capacitor-task de fond
Guide de l'utilisateur
@capgo/capacitor-task-planifiation

Tâche de fond

Planifiez des tâches de chargement de fond périodiques sur iOS et Android avec l'enregistrement d'Expo de tâche

Guide

Tutoriel sur la tâche de fond

Tester sur appareil

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

Lien QR de prévisualisation du plugin de tâche de fond 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, 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.

Installation

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>

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

Exemple d'utilisation

Définir la tâche au niveau du module afin qu'elle soit disponible lorsque l'OS 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 programmes de tâches d'arrière-plan sont opportunistes, pas des horloges exactes.
  • Le travail périodique Android a une plage de 15 minutes minimum.
  • 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'arrière-plan sur un appareil physique iOS.

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