Passer à la navigation

Démarrage

GitHub

@capgo/capacitor-background-task permet à une application Capacitor de s'inscrire pour des tâches périodiques de synchronisation, de mise à jour du cache, de livraison d'analytiques et d'autres opérations de récupération de fond.

Vous pouvez utiliser notre configuration assistée par l'IA pour installer le plug-in. Ajoutez les Capgo compétences à votre outil IA à l'aide de la commande suivante :

Fenêtre de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Utilisez ensuite la prompt suivante :

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.

Si vous préférez la configuration manuelle, installez le plug-in en exécutant les commandes suivantes et suivez les instructions spécifiques à la plateforme ci-dessous :

Fenêtre de terminal
npm install @capgo/capacitor-background-task
npx cap sync

Ajoutez le mode de traitement en arrière-plan et l'identifiant de la tâche autorisée à 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 :

Fenêtre de terminal
npx cap sync ios
import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

Définissez l'appel de retour au niveau du module afin qu'il soit enregistré dès que l'application est lancée par le système d'exploitation.

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

Appeler registerTaskAsync context : fragment de texte HTML d'une chaîne de Capgo UI plus longue (clé parente `appflow_migration_step2`). Page/zone : Comparaison / migration de la copie de marketing d'Appflow. Rôle : Phrase de copie du site Web. Voir dans : page ionic-appflow.astro. Conservez exactement les termes de produit/marque et les termes de développeur de Capgo.

await BackgroundTask.registerTaskAsync(SYNC_TASK, {
minimumInterval: 30,
requiresNetwork: true,
});

minimumInterval Copier dans le presse-papier

dure en minutes. Android impose un minimum de 15 minutes. iOS traite la valeur comme une date de début la plus tôt et peut exécuter plus tard.

Vérifier l'état
const status = await BackgroundTask.getStatusAsync();
const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);
const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });

Copier dans le presse-papier

Déclencher Un Lancement De Test

Titre de la section « Déclencher Un Lancement De Test »

await BackgroundTask.triggerTaskWorkerForTestingAsync();
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

iOS peut interrompre une tâche de fond avant que votre travail JavaScript ne se termine. Écoutez les événements d'expiration lorsque des opérations de nettoyage ou de point de contrôle sont importantes.

const expiration = await BackgroundTask.addExpirationListener((event) => {
console.warn('Background task expired', event.taskName, event.taskId);
});
await expiration.remove();

Compatibilité de la Tâche de Fond pour React Native

Section intitulée “Compatibilité de la Tâche de Fond pour React Native”

Le plugin expose également une petite couche de compatibilité pour les applications en train de migrer depuis react-native-background-task.

import { BackgroundTask } from '@capgo/capacitor-background-task';
BackgroundTask.define(async () => {
await fetch('https://api.example.com/sync', { method: 'POST' });
});
await BackgroundTask.schedule({
period: 1800,
});

Notes de Production

Notes de production
  • La planification en arrière-plan est opportuniste, pas exacte.
  • Gardez vos tâches courtes et idempotentes.
  • Enregistrez tout l'état dont vous avez besoin avant de renvoyer BackgroundTaskResult.Success.
  • Évitez de vous fier aux tâches en arrière-plan pour les délais ou les alarmes visibles par l'utilisateur.

Si vous utilisez Getting Started pour planifier le travail de plugin natif, connectez-l’avec Utilisez @capgo/capacitor-background-task pour la capacité native dans Utilisez @capgo/capacitor-background-task, Répertoire du plugin Capgo pour le flux de travail du produit dans le Capgo Répertoire du plugin Capacitor Plugins par Capgo pour le détail d'implémentation dans Capacitor Plugins par Capgo Ajouter ou Mettre à Jour les Plugins pour le détail d'implémentation dans Ajouter ou Mettre à Jour les Plugins, et Alternatives de Plugins d'Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugins d'Entreprise Ionic.