Aller directement au contenu principal
Retour aux plugins
@capgo/capacitor-tâche-plan-arrière
Tutorial
@capgo/capacitor-tâche-plan-arrière

Tâche plan arrière

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

Guide

Tutoriel sur la tâche de fond

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

Planifiez des tâches 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.

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>

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 - Persistez et planifiez une tâche périodique.
  • unregisterTaskAsync - Annuler une tâche.
  • isTaskRegisteredAsync - Vérifier l'état d'enregistrement d'une tâche.
  • getRegisteredTasksAsync - Liste les noms des tâches enregistrées.
  • getStatusAsync - Vérifier la disponibilité d'une tâche de fond native.
  • triggerTaskWorkerForTestingAsync - Déclencher les tâches enregistrées immédiatement pour le développement.
  • addExpirationListener - Réagir 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 session de développement :

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Annulez la tâche :

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Remarques sur les plateformes

  • Les tâches de fond sont planifiées de manière opportuniste, et non comme des horloges exactes.
  • La période de travail Android a un minimum d'intervalle 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'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 planer le travail de plugin natif, le connecter avec @capgo/capacitor-tâche de fond pour les détails d'implémentation dans @capgo/capacitor-tâche de fond, Démarrage pour les détails d'implémentation dans Démarrage, Répertoire de plugin Capgo pour le flux de travail du produit dans Répertoire de plugin Capgo, Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à jour les Plugins.