Aller au contenu principal
@capgo/capacitor-background-task API de l'appareil Open source

Tâche en arrière-plan Plugin Capacitor

Planifiez des tâches de background fetch périodiques sur iOS et Android avec un enregistrement façon Expo

Installer

bun add @capgo/capacitor-background-task bunx cap sync
npm, pnpm ou yarn
  • npm install @capgo/capacitor-background-task
  • pnpm add @capgo/capacitor-background-task
  • yarn add @capgo/capacitor-background-task

Guide

Comment utiliser Background Task dans Capacitor

Tester sur l'appareil

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

Lien QR de l'aperçu du plugin Background Task code

Utilisation de @capgo/capacitor-background-task

Planifiez des tâches de récupération en arrière-plan périodiques dans une application Capacitor avec des tâches nommées, une enregistrement persistant, des vérifications d’état, un désenregistrement et un déclencheur de développement. Le plugin utilise Android WorkManager et iOS BGTaskScheduler.

Installer

npm install @capgo/capacitor-background-task
npx cap sync

Configuration iOS

Ajoutez le support du 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, lancez :

npx cap sync ios

Ce que ce plugin expose

  • defineTask - Définir le callback JavaScript pour une tâche nommée.
  • registerTaskAsync - Persister et planifier une tâche périodique.
  • unregisterTaskAsync - Annuler une tâche.
  • isTaskRegisteredAsync - Vérifier l'état d'enregistrement d'une tâche.
  • getRegisteredTasksAsync - Lister les noms des tâches enregistrées.
  • getStatusAsync - Vérifier la disponibilité des tâches de fond natives.
  • triggerTaskWorkerForTestingAsync - Déclencher immédiatement les tâches enregistrées pour le développement.
  • addExpirationListener - Réagir quand iOS expire une tâche.

Exemple d'utilisation

Define the task at module scope so it is available when the OS wakes the app:

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();

Annuler la tâche :

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Notes de plateforme

  • Les planifications de tâches de fond sont opportunistes, pas des minuteurs exacts.
  • Le travail périodique sur Android a un intervalle minimum de 15 minutes.
  • iOS traite minimumInterval comme date de début au plus tôt et peut s'exécuter plus tard.
  • Testez le traitement en arrière-plan iOS sur un appareil physique.

Référence complète

Continuer depuis Utiliser @capgo/capacitor-background-task

Si vous utilisez Utilisation de @capgo/capacitor-background-task pour planifier le travail sur les plugins natifs, connectez-l’à @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 Getting Started Capgo Répertoire des plugins pour le workflow produit dans Capgo Plugin Directory, Plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo, et Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Adding or Updating Plugins.

FAQ

FAQ du plugin Background Task

Comment installer le plugin Background Task dans une application Capacitor ?

Exécutez &quot;bun add @capgo/capacitor-background-task&quot; (ou &quot;npm install @capgo/capacitor-background-task&quot;), puis lancez &quot;bunx cap sync&quot; pour que les projets iOS et Android récupèrent le code natif. Importez-le depuis &quot;@capgo/capacitor-background-task&quot; dans votre code.

Est-ce que @capgo/capacitor-background-task fonctionne avec React, Vue et Angular ?

Oui. Background Task est un package Capacitor, il fonctionne donc avec n'importe quel framework web qui s'exécute dans Capacitor, y compris Ionic, React, Vue, Angular, Svelte et le JavaScript pur.

Quelle version de Capacitor est supportée par @capgo/capacitor-background-task ?

Les plugins Capgo suivent la version majeure de Capacitor : utilisez la version majeure du plugin qui correspond à la version majeure de votre Capacitor (par exemple le plugin v8 avec Capacitor 8). Le tableau de compatibilité du README de GitHub recense les versions maintenues.

Est-ce que @capgo/capacitor-background-task est gratuit et open source ?

Oui. Le code source de code est public sur GitHub à l'adresse https://github.com/Cap-go/capacitor-background-task/ et le package s'installe gratuitement depuis npm. Les rapports de bugs et les pull requests sont les bienvenus.

Puis-je mettre à jour code utilisant Background Task sans passer par une revue de l'App Store ?

L'installation ou la mise à jour du plugin modifie le code natif, ce qui impose un nouveau build pour les stores. Ensuite, les changements JavaScript, HTML et CSS qui appellent le plugin peuvent être livrés instantanément via les live updates de Capgo.

Déployez les changements de Background Task sans attendre la validation de l'app

Une fois le plugin intégré à votre build de store, Capgo live updates déploie vos changements JavaScript, HTML et CSS aux utilisateurs en quelques minutes.

Commencez avec Capgo