Salta al contenuto principale
@capgo/capacitor-background-task API dei dispositivi Open source

Task in background Plugin Capacitor

Pianifica task di background fetch periodici su iOS e Android con registrazione dei task in stile Expo

Installa

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

Guida

Come usare Background Task in Capacitor

Testa sul dispositivo

Scarica l'app Capgo, poi scansiona il QR code.

Link QR per l'anteprima del plugin Background Task code

Utilizzo di @capgo/capacitor-background-task

Pianifica operazioni di background periodiche in un'app Capacitor con task nominati, registrazione persistente, controllo dello stato, rimozione e un trigger di sviluppo. Il plugin utilizza Android WorkManager e iOS BGTaskScheduler.

Installa

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

Setup iOS

Aggiungi il supporto al processing 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

Cosa espone questo plugin

  • defineTask - Definisci la callback JavaScript per un task con nome.
  • registerTaskAsync - Persisti e pianifica un task periodico.
  • unregisterTaskAsync - Cancella un task.
  • isTaskRegisteredAsync - Controlla lo stato di registrazione di un task.
  • getRegisteredTasksAsync - Elenca i nomi dei task registrati.
  • getStatusAsync - Verifica la disponibilità dei task in background nativi.
  • triggerTaskWorkerForTestingAsync - Avvia immediatamente i task registrati per lo sviluppo.
  • addExpirationListener - Reagisci quando iOS fa scadere un task.

Esempio d'uso

Definisci il task a livello di modulo per renderlo disponibile quando l'OS risveglia 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 dei task registrati:

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

console.log({ status, tasks });

Avvia un'esecuzione di sviluppo:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Annulla il task:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Note sulla piattaforma

  • La pianificazione dei task in background è opportunistica, non un timer preciso.
  • Il periodic work di Android ha un intervallo minimo di 15 minuti.
  • iOS considera minimumInterval come la data di inizio più prossima e potrebbe avviarsi più tardi.
  • Testa l'elaborazione in background su iOS con un dispositivo fisico.

Riferimento completo

Continua con l'uso di @capgo/capacitor-background-task

Se stai usando Utilizzo di @capgo/capacitor-background-task per pianificare il lavoro sui plugin nativi, collegalo a @capgo/capacitor-background-task per i dettagli di implementazione in @capgo/capacitor-background-task, Per iniziare per i dettagli di implementazione nella guida introduttiva, Directory dei plugin di Capgo per il workflow del prodotto nella Capgo Plugin Directory, Plugin Capacitor di Capgo per i dettagli di implementazione in Plugin Capacitor di Capgo, e Aggiunta o aggiornamento dei plugin per i dettagli di implementazione in Aggiunta o aggiornamento dei plugin.

FAQ

FAQ sul plugin Background Task

Come installo il plugin Background Task in un'app Capacitor?

Esegui "bun add @capgo/capacitor-background-task" (o "npm install @capgo/capacitor-background-task"), poi lancia "bunx cap sync" per aggiornare i progetti iOS e Android con il code nativo. Importalo da "@capgo/capacitor-background-task" nel code della tua app.

@capgo/capacitor-background-task funziona con React, Vue e Angular?

Sì. Background Task è un pacchetto Capacitor, quindi funziona con qualsiasi framework web in esecuzione all'interno di Capacitor, inclusi Ionic, React, Vue, Angular, Svelte e JavaScript puro.

Quale versione di Capacitor supporta @capgo/capacitor-background-task?

I plugin Capgo seguono la major version di Capacitor: usa la major version del plugin che corrisponde alla tua major version di Capacitor (ad esempio plugin v8 con Capacitor 8). La tabella di compatibilità nel README di GitHub elenca le versioni mantenute.

@capgo/capacitor-background-task è free e open source?

Sì. Il codice sorgente code è pubblico su GitHub all'indirizzo https://github.com/Cap-go/capacitor-background-task/ e il pacchetto è gratuito su npm. Bug report e pull request sono i benvenuti.

Posso aggiornare code che usa Background Task senza passare per la revisione dell'App Store?

Installare o aggiornare il plugin modifica il code nativo, quindi serve una nuova build per lo store. Dopo, le modifiche a JavaScript, HTML e CSS che chiamano il plugin possono essere rilasciate subito con le live updates di Capgo.

Distribuisci modifiche ai Background Task senza attendere la revisione dell'app

Una volta incluso il plugin nel tuo store build, Capgo invia le modifiche a JavaScript, HTML e CSS tramite live updates in pochi minuti.

Inizia con Capgo