Anleitung
So nutzt du Background Task in Capacitor
@capgo/capacitor-background-task verwenden
Plane periodische Hintergrundaufgaben in einer Capacitor App mit benannten Tasks, persistenter Registrierung, Statusprüfungen, Deaktivierung und einem Development-Trigger. Das Plugin nutzt Android WorkManager und iOS BGTaskScheduler.
Installieren
npm install @capgo/capacitor-background-task
npx cap sync
iOS-Setup
Füge Unterstützung für Hintergrundprozesse hinzu zu ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
Führe dann aus:
npx cap sync ios
Was dieses Plugin bereitstellt
defineTask- Definiere den JavaScript-Callback für einen benannten Task.registerTaskAsync- Speichere und plane einen periodischen Task.unregisterTaskAsync- Einen Task abbrechen.isTaskRegisteredAsync- Den Registrierungsstatus eines Tasks prüfen.getRegisteredTasksAsync- Liste registrierte Task-Namen auf.getStatusAsync- Verfügbarkeit von nativen Background Tasks prüfen.triggerTaskWorkerForTestingAsync- Registrierte Tasks zur Entwicklung sofort triggern.addExpirationListener- Reagiere, wenn iOS einen Task beendet.
Anwendungsbeispiel
Definiere den Task auf Modulebene, damit er verfügbar ist, wenn das OS die App aufweckt:
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,
});
Status und registrierte Task-Namen prüfen:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Einen Development-Run triggern:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Task abbrechen:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Plattform-Hinweise
- Zeitpläne für Background-Tasks sind opportunistisch, keine exakten Timer.
- Android Periodic Work hat ein Mindestintervall von 15 Minuten.
- iOS behandelt
minimumIntervalals frühestmögliches Startdatum und kann später ausgeführt werden. - Teste iOS Background Processing auf einem echten Gerät.
Vollständige Referenz
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- Docs: /docs/plugins/background-task/
Weiterlesen: Verwenden von @capgo/capacitor-background-task
Wenn du es nutzt @capgo/capacitor-background-task verwenden Um die Arbeit an nativen Plugins zu planen, verbinde sie mit @capgo/capacitor-background-task für die Implementierungsdetails in @capgo/capacitor-background-task, Erste Schritte für die Implementierungsdetails in Erste Schritte, Capgo Plugin-Verzeichnis für den Produkt-Workflow im Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, und Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren.