Utilizza @capgo/capacitor-background-task
Agenda il lavoro di fetch di background periodico in un'app con Capacitor, registrazione persistente, controlli di stato, disiscrizione 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 supporto per il background ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
Quindi esegui:
npx cap sync ios
Cos'è che questo plugin espone
defineTask- Definisci il callback JavaScript per una task denominata.registerTaskAsync- Persiste e programma una task periodica.unregisterTaskAsync- Annulla una task.isTaskRegisteredAsync- Controlla lo stato di registrazione di una task.getRegisteredTasksAsync- Elencare i nomi delle task registrate.getStatusAsync- Controlla la disponibilità delle attività di background native.triggerTaskWorkerForTestingAsync- Attiva immediatamente le task registrate per lo sviluppo.addExpirationListener- Rispondi quando iOS scade una task.
- Esempio di utilizzo
- Definisci la task al livello di modulo affinché sia 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 delle task registrate:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
- Attiva un run di sviluppo:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
- Annulla la task:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Note di piattaforma
- Le schede dei compiti di background sono opportuniste, non timer esatti.
- L'opera periodica Android ha un intervallo minimo di 15 minuti.
- IOS considera
minimumIntervalas an earliest begin date and may run later. - Testare il processing di background iOS su un dispositivo fisico.
Riferimento completo
- GitHub: https://github.com/Cap-go/capacitor-attività-di-background/
- Dal documento: /docs/plugins/attività-di-background/
Continua da Utilizzo di @capgo/capacitor-attività-di-background/
Se stai utilizzando Utilizzando @capgo/capacitor-background-task per pianificare il lavoro del plugin nativo, connettilo con @capgo/capacitor-background-task per i dettagli di implementazione in @capgo/capacitor-background-task, Getting Started per i dettagli di implementazione in Avvio, Directory dei Plugin di Capgo per il workflow del prodotto nella Capgo Directory dei Plugin Plugin di Capacitor sviluppati da Capgo per i dettagli di implementazione in Plugin di Capacitor sviluppati da Capgo, e Aggiungere o Aggiornare i Plugin per i dettagli di implementazione in Aggiungere o Aggiornare i Plugin.