Saltare al contenuto principale
Indietro ai plugin
@capgo/capacitor-background-task
Istruzioni
@capgo/capacitor-background-task

Background Task

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

Guida

Tutoriale sul compito di background

Esegui il test sul dispositivo

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

Anteprima del plugin di compito in background QR code

Utilizza @capgo/capacitor-background-task

Programma il lavoro di fetch in 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 al trattamento in background a ios/App/App/Info.plist:

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

Poi esegui:

npx cap sync ios

Questo che il 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 - Elenco dei nomi delle attività registrate.
  • getStatusAsync - Verifica la disponibilità delle attività di background native.
  • triggerTaskWorkerForTestingAsync - Attiva immediatamente le attività registrate per lo sviluppo.
  • addExpirationListener - Rispondi quando iOS scade un'attività.

- Esempio di utilizzo.

- Definisci l'attività al livello di modulo affinché 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,
});

- Controlla lo stato e i nomi delle attività registrate:

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

console.log({ status, tasks });

- Attiva un run di sviluppo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

- Annulla l'attività:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

- Note per la piattaforma.

  • - Le scadenze delle attività di background sono opportuniste, non timer esatti.
  • - L'Android periodic work ha un intervallo minimo di 15 minuti.
  • iOS trattano minimumInterval come una data di inizio più antica e possono eseguirsi in seguito.
  • Testa la elaborazione in background di iOS su un dispositivo fisico.

Riferimento Completo

Continua da Utilizzo di @capgo/capacitor-background-task

Se stai utilizzando Utilizzo di @capgo/capacitor-background-task per pianificare il lavoro dei plugin nativi, connettilo con @capgo/capacitor-background-task per i dettagli di implementazione in @capgo/capacitor-background-task, Iniziare per i dettagli di implementazione in Iniziare, Directory dei plugin Capgo per il flusso di lavoro del prodotto in Directory dei plugin Capgo, Plugin Capacitor di Capgo per i dettagli di implementazione in Plugin Capacitor di Capgo, e Aggiungere o aggiornare i plugin per i dettagli di implementazione in Aggiungere o aggiornare i plugin.