Saltare al contenuto principale
Torna ai plugin
@capgo/capacitor-background-task
Tutorial
@capgo/capacitor-background-task

Background Task

Esegui compiti di background periodici su iOS e Android con registrazione di compiti Expo-style

Guida

Tutorial sul compito di background

Testa sul dispositivo

Scarica l'app Capgo, poi scansa il codice QR code.

Link QR di anteprima del plugin del compito di background code

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

Impostazione iOS

Aggiungi supporto per il processo di 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>

Esegui quindi:

npx cap sync ios

Cosa questo plugin espone

  • defineTask - Definisci il callback JavaScript per un compito denominato.
  • registerTaskAsync - Persisti e programma un compito periodico.
  • unregisterTaskAsync - Annulla un compito.
  • isTaskRegisteredAsync - Controlla lo stato di registrazione di un compito.
  • getRegisteredTasksAsync - Elencare i nomi dei compiti registrati.
  • getStatusAsync - Controlla la disponibilità del compito di background nativo.
  • triggerTaskWorkerForTestingAsync - Attiva immediatamente i compiti registrati per lo sviluppo.
  • addExpirationListener - Rispondi quando iOS scade un compito.

Esempio di utilizzo

Definisci il compito all'interno dello scope del modulo affinché sia disponibile quando l'OS risveglia l'applicazione:

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

Note sulla piattaforma

  • Il calendario dei compiti in background è opportunistico, non un timer esatto.
  • Lavoro periodico Android ha un intervallo minimo di 15 minuti.
  • iOS considera minimumInterval come una data di inizio più precoce e può eseguire il compito in un momento successivo.
  • Testa il processing in background di iOS su un dispositivo fisico.

Riferimento completo

Continua da Utilizza @capgo/capacitor-background-task

Se stai utilizzando Utilizza @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 Inizia per i dettagli di implementazione in Inizia Capgo Directory dei plugin per il flusso di lavoro del prodotto nella cartella di plugin Capgo Capacitor plugin creati da Capgo per i dettagli di implementazione in Capacitor plugin creati da Capgo, e Aggiungere o aggiornare plugin per i dettagli di implementazione in Aggiungere o aggiornare plugin.