Iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-background-task`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/background-task/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
@capgo/capacitor-background-task Consente a un'app Capacitor di registrare dei lavori periodici per la sincronizzazione, l'aggiornamento della cache, la consegna degli analytics e altre operazioni di fetch in background.
Installazione
Sezione intitolata “Installazione”Puoi utilizzare la nostra configurazione assistita da AI per installare il plugin. Aggiungi le Capgo abilitazioni al tuo strumento di AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUsa poi la seguente richiesta:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:
npm install @capgo/capacitor-background-tasknpx cap syncConfigurazione iOS
Sezione intitolata “Configurazione iOS”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>Esegui poi:
npx cap sync iosImporta
Sezione intitolata “Importa”import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';Definisci un compito
Sezione intitolata “Definisci un compito”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; }});Registra il calendario
Sezione intitolata “Registra il calendario”Chiamata registerTaskAsync Dopo che l'app ha abbastanza contesto per abilitare il lavoro di background.
await BackgroundTask.registerTaskAsync(SYNC_TASK, { minimumInterval: 30, requiresNetwork: true,});minimumInterval Il tempo è in minuti. L'Android impone un minimo di 15 minuti. L'iOS considera il valore come una data di inizio più antica e può eseguire in un momento successivo.
Controlla lo stato
Sezione intitolata “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 });Avvia un test di esecuzione
Sezione intitolata “Avvia un test di esecuzione”Utilizza il trigger di testamento in fase di sviluppo o QA. Chiama ogni compito registrato immediatamente.
await BackgroundTask.triggerTaskWorkerForTestingAsync();Disiscrivi un compito
Sezione intitolata “Disiscrivi un compito”await BackgroundTask.unregisterTaskAsync(SYNC_TASK);Scadenza iOS
Sezione intitolata “Scadenza iOS”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à compiti di background React Native
Sezione intitolata “Compatibilità compiti di background React Native”Il plugin esporre 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,});Note di produzione
Sezione intitolata “Note di produzione”- La pianificazione di background è occasionale, non esatta.
- Tenere il lavoro breve e idempotente.
- Persistere ogni stato che serve prima di tornare
BackgroundTaskResult.Success. - Evitare di affidarsi a compiti di background per scadenze o allarmi visibili dall'utente.
Continua da Inizia
Sottosezione intitolata “Continua da Inizia”Se stai utilizzando Inizia per pianificare il lavoro di plugin nativo, connettilo con Utilizzare @capgo/capacitor-compito-di-background per la capacità nativa in Utilizzare @capgo/capacitor-compito-di-background, Capgo Directory dei plugin per il flusso di lavoro del prodotto in Capgo Directory dei plugin, Plugins da Capacitor sviluppati da Capgo per i dettagli di implementazione in Plugins da Capacitor sviluppati da Capgo, Aggiunta o Aggiornamento di Plugins per i dettagli di implementazione in Aggiunta o Aggiornamento di Plugins, e Alternative per Plugin Enterprise di Ionic per il workflow del prodotto in Alternative per Plugin Enterprise di Ionic.