Saltare al contenuto principale
Torna ai plugin
@capgo/capacitor-background-task
Tutorial
di github.com/Cap-go

Background Task

Pianifica compiti di fetch di background periodici su iOS e Android con registrazione di task Expo-style

Guida

Tutorial sul compito di background

Utilizza @capgo/capacitor-compito-di-background

Programma il lavoro di fetch di background periodico in un'app Capacitor con compiti denominati, registrazione persistente, controlli di stato, disiscrizione e un trigger di sviluppo. Il plugin utilizza Android WorkManager e iOS BGTaskScheduler.

Installa

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

Configurazione iOS

Aggiungi supporto per l'esecuzione in background ios/App/App/Info.plist:

<key>UIBackgroundModes</key>
<array>
  <string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
  <string>app.capgo.backgroundtask.processing</string>
</array>

Eseguire quindi:

npx cap sync ios

Cos'è che questo Plugin Espone

  • defineTask - Definisci il callback JavaScript per una task denominata.
  • registerTaskAsync - Persisti e programma una task periodica.
  • unregisterTaskAsync - Annulla una task.
  • isTaskRegisteredAsync - Controlla lo stato di registrazione di una task.
  • getRegisteredTasksAsync - Elencare i nomi delle task registrate.
  • getStatusAsync - Controlla la disponibilità di una task di background nativa.
  • triggerTaskWorkerForTestingAsync - Attiva immediatamente le task registrate per lo sviluppo.
  • addExpirationListener - Rispondi quando iOS scade una task.

Esempio di Utilizzo

Definisci il compito a livello di modulo in modo che sia disponibile quando il sistema operativo riattiva l'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,
});

Verifica lo stato e i nomi dei compiti registrati:

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

console.log({ status, tasks });

Avvia un run di sviluppo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Annulla il compito:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Nota sulla piattaforma

  • I calendari dei compiti in background sono opportunistici, non timer esatti.
  • Il lavoro periodico di Android ha un intervallo minimo di 15 minuti.
  • iOS considera minimumInterval come una data di inizio più presto e può eseguirsi in un momento successivo.
  • Testa il processing in background di iOS su un dispositivo fisico.

Riferimento completo

Continua da Utilizzare @capgo/capacitor-background-task

Se stai utilizzando Utilizzare @capgo/capacitor-background-task per pianificare il lavoro del plugin nativo, connettilo con @capgo/capacitor-background-task per i dettagli di implementazione in @capgo/capacitor-background-task Avvio per i dettagli di implementazione in Avvio Directory dei Plugin Capgo per il flusso di lavoro del prodotto in Directory dei Plugin Capgo Capacitor Plugin da Capgo per i dettagli di implementazione in Capacitor Plugin da Capgo, e Aggiungi o Aggiorna Plugin per i dettagli di implementazione in Aggiungi o Aggiorna Plugin.