Saltare al contenuto

Iniziare

GitHub

@capgo/capacitor-background-task Consente a un'app Capacitor di registrare dei lavori periodici denominati per la sincronizzazione, l'aggiornamento della cache, la consegna degli analytics e altre operazioni di fetch in background.

Puoi utilizzare la nostra configurazione assistita da AI per installare il plugin. Aggiungi le Capgo competenze al tuo strumento AI utilizzando il seguente comando:

Finestra del terminale
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Poi utilizza il seguente prompt:

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

Se preferisci la configurazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:

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

Aggiungi il modalità di elaborazione in background e l'identificatore della task autorizzata 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>

Eseguisci quindi:

Finestra del terminale
npx cap sync ios
import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

Definisci il callback all'interno dello scope del modulo affinché venga registrato non appena l'applicazione viene avviata dal sistema operativo.

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

Chiamata registerTaskAsync context

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

minimumInterval Copia nella clipboard

è in minuti. L'Android impone un minimo di 15 minuti. L'iOS considera il valore come una data di inizio più precoce e può eseguire in un momento successivo.

Controlla lo stato
const status = await BackgroundTask.getStatusAsync();
const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);
const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });

Copia nella clipboard

Attiva un test

Sezione intitolata “Attiva un test”

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

Il sistema iOS può interrompere una task di background prima che il tuo codice JavaScript sia completato. Ascolta gli eventi di scadenza quando è necessario pulire o effettuare il checkpointing.

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

Compatibilità delle Task di Background per React Native

Sezione intitolata “Compatibilità delle Task di Background per React Native”

Il plugin esporre anche una piccola layer di compatibilità per le app che stanno migrando da 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,
});
  • La pianificazione in background è occasionale, non esatta.
  • Tieni i lavori brevi e idempotenti.
  • Mantieni qualsiasi stato che ti serve prima di tornare BackgroundTaskResult.Success.
  • Evita di affidarti alle attività in background per i termini o gli allarmi visibili dall'utente.

Continua da Iniziare

Se stai utilizzando

Iniziare per pianificare il lavoro di plugin nativo, connettilo con Utilizzare @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-task-di-background per la capacità nativa in Utilizzare @capgo/capacitor-task-di-background, for the native capability in Using @capgo/capacitor-background-task, Capgo Directory dei Plugin per il flusso di lavoro del prodotto in Capgo Directory dei Plugin, Capacitor Plugin di Capgo per i dettagli di implementazione in Capacitor Plugin di Capgo, Aggiungere o Aggiornare i Plugin per i dettagli di implementazione in Aggiungere o Aggiornare i Plugin, e Sostituti dei Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Sostituti dei Plugin Enterprise di Ionic.