Saltare al contenuto

Getting Started

GitHub

@capgo/capacitor-background-task Consente a un'app Capacitor di registrare lavori periodici denominati per sincronizzazioni, aggiornamenti cache, consegne di analisi e altre operazioni di fetch in background.

Potresti 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

Utilizza poi 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 della piattaforma riportate di seguito:

Finestra del terminale
bun add @capgo/capacitor-background-task
bunx cap sync

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

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

Definisci il callback all'interno dello scope del modulo, in modo che 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;
}
});

Esegui registerTaskAsync Dopo che la tua app ha abbastanza contesto per abilitare il lavoro di background.

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

minimumInterval È in minuti. Android impone un minimo di 15 minuti. iOS interpreta il valore come data di inizio più antica e può eseguire in un momento successivo.

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

Utilizza il trigger di testamento in fase di sviluppo o QA. Esegue ogni compito registrato immediatamente.

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

iOS può interrompere un compito di background prima che il tuo lavoro JavaScript sia completato. Ascolta gli eventi di scadenza quando la pulizia o il checkpointing sono importanti.

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

Compatibilità dei Task di Background per React Native

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

Il plugin esponi anche una piccola layer di compatibilità per le app che migrano 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.
  • Conserva il lavoro breve e idempotente.
  • Conserva qualsiasi stato necessario prima di tornare. BackgroundTaskResult.Success.
  • Evita di affidarti alle attività in background per scadenze o allarmi visibili dall'utente.

Se stai utilizzando Getting Started per pianificare il lavoro del plugin nativo, connettilo con Utilizza @capgo/capacitor-background-task per la capacità nativa in Utilizza @capgo/capacitor-background-task, Directory del plugin Capgo per il workflow del prodotto nella Capgo Directory dei Plugin Capacitor Plugin da Capgo per i dettagli di implementazione in Capacitor Plugin da Capgo Aggiungere o aggiornare i Plugin per i dettagli di implementazione in Aggiungere o aggiornare i Plugin, e Alternative per Plugin Enterprise Ionic per il workflow del prodotto in Alternative per Plugin Enterprise Ionic.