Passer à la navigation principale
Retour aux plugins
@capgo/capacitor-background-task
Tutoriel
@capgo/capacitor-background-task

Tâche de fond

Planer des tâches de chargement de fond périodique sur iOS et Android avec l'enregistrement de tâches à la manière d'Expo

Guide

Tutoriel sur les tâches de fond

Utiliser @capgo/capacitor-background-task

Planer des travaux de chargement de fond périodique dans une application Capacitor avec des tâches nommées, un enregistrement persistant, des vérifications d'état, la désinscription et un déclencheur de développement. Le plugin utilise WorkManager Android et BGTaskScheduler iOS.

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

Utilisation d'exemple

Définissez la tâche au niveau du module afin qu'elle soit disponible lorsque le système réveille l'application : __CAPGO_KEEP_0__

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 de tâches enregistrés : __CAPGO_KEEP_0__

const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();

console.log({ status, tasks });

Déclenchez une exécution de développement : __CAPGO_KEEP_0__

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Annulez la tâche : __CAPGO_KEEP_0__

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Notes de plateforme

  • Les calendriers de tâches de fond 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.
  • Testez la mise en œuvre de fond d'iOS sur un appareil physique.

Référence complète

Continuez de l'utilisation de @capgo/capacitor-background-task

Si vous utilisez En utilisant @capgo/capacitor-background-task pour planifier le travail du 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 du plugin Capgo pour le flux de 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.