Inizio
Copiare una riga di impostazione 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 denominati per sincronizzare, aggiornare il cache, inviare dati di analytics e altre operazioni di fetch in background.
Installare
Sezione intitolata “Installazione”Puoi utilizzare la nostra configurazione assistita da AI per installare il plugin. Aggiungi le Capgo abilità al tuo strumento AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUsa 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 del tuo platform:
npm install @capgo/capacitor-background-tasknpx cap syncConfigurazione per iOS
Sezione intitolata “Configurazione per iOS”Aggiungi il modalità 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>Poi esegui:
npx cap sync iosImporta
Sezione intitolata “Importa”import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';Definisci una Task
Sezione intitolata “Definisci una 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; }});Registra La Scadenza
Sezione intitolata “Registra Il Calendario”Chiama 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. 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 Run di Test
Sezione intitolata “Avvia Un Run di Test”Utilizza il trigger di testamento in fase di sviluppo o QA. Chiama ogni compito registrato immediatamente.
await BackgroundTask.triggerTaskWorkerForTestingAsync();Disiscrivere una Task
Sezione intitolata “Disiscrivere una Task”await BackgroundTask.unregisterTaskAsync(SYNC_TASK);Scadenza iOS
Sezione intitolata “Scadenza iOS”iOS può interrompere una task di background prima che il tuo lavoro JavaScript si completi. 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à 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,});Nota di produzione
Nota di produzione- La pianificazione in background è opportunistica, non esatta.
- Tieni i lavori brevi e idempotenti.
- Mantieni qualsiasi stato che ti serve prima di tornare
BackgroundTaskResult.Success. - Evita di affidarti ai compiti in background per i termini o gli allarmi visibili dagli utenti.
Continua da Inizia
Nota di continuazione da IniziaSe stai utilizzando Inizia per pianificare il lavoro dei plugin nativi, connettilo con Utilizza @capgo/capacitor-compito-in-background per la capacità nativa in Utilizza @capgo/capacitor-compito-in-background Directory Plugin di Capgo per il workflow del prodotto in Plugin Directory di Capgo Plugin di Capgo in Capacitor per il dettaglio di implementazione in Plugin di Capgo in Capacitor, Aggiunta o Aggiornamento di Plugin per il dettaglio di implementazione in Aggiunta o Aggiornamento di Plugin, e Alternative Plugin di Enterprise Ionic per il workflow del prodotto in Alternative Plugin di Enterprise Ionic.