Richtlinie
Tutorial zu Hintergrundaufgaben
Verwenden Sie @capgo/capacitor-Hintergrundaufgabe
Periodische Hintergrundabrabearbeitung in einer Capacitor-App mit benannten Aufgaben, persistenter Registrierung, Statusprüfungen, Entregistrierung und einem Entwicklungs-Trigger. Die Erweiterung verwendet Android WorkManager und iOS BGTaskScheduler.
Installieren
npm install @capgo/capacitor-background-task
npx cap sync
iOS Einrichtung
Hinzufügen von Unterstützung für Hintergrundprozesse ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
Dann ausführen:
npx cap sync ios
Was diese Plugin-Exposé enthält
defineTask- Definieren Sie die JavaScript-Rückrufmethode für einen benannten Auftrag.registerTaskAsync- Speichern und planen Sie einen periodischen Auftrag.unregisterTaskAsync- Stornieren Sie einen Auftrag.isTaskRegisteredAsync- Überprüfen Sie den Registrierungsstatus eines Auftrags.getRegisteredTasksAsync- Liste der registrierten Aufgaben.getStatusAsync- Überprüfen Sie die Verfügbarkeit von Hintergrundaufgaben für native Geräte.triggerTaskWorkerForTestingAsync- Auslösen Sie die sofortige Ausführung der registrierten Aufgaben für Entwicklungszwecke.addExpirationListener- Reagieren Sie auf iOS, wenn ein Auftrag abläuft.
Beispielanwendung
Definieren Sie die Aufgabe im Modulbereich so, dass sie verfügbar ist, wenn das Betriebssystem die App weckt:
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,
});
Überprüfen Sie den Status und die registrierten Aufgabenamen:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Auslösen Sie einen Entwicklungsstart:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Stornieren Sie die Aufgabe:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Plattformhinweise
- Hintergrundaufgaben werden opportunistisch, nicht exakt gesteuert.
- Android-Periodikarbeit hat einen Mindestintervall von 15 Minuten.
- iOS behandelt
minimumIntervalals frühesten Beginndatum und kann später laufen. - Testen Sie die iOS-Hintergrundverarbeitung auf einem physischen Gerät.
Vollständige Referenz
- GitHub: https://github.com/Cap-go/capacitor-hintergrundaufgabe/
- Dokumentation: /docs/plugins/hintergrundaufgabe/
Weitermachen von Using @capgo/capacitor-hintergrundaufgabe
Wenn Sie Using verwenden Mit @capgo/capacitor-hintergrundaufgabe um native Plugin-Arbeit zu planen, verbinden Sie es mit @capgo/capacitor-hintergrundaufgabe für die Implementierungsdetails in @capgo/capacitor-hintergrundaufgabe, Einstieg für die Implementierungsdetails in Einstieg, Capgo Plugin-Verzeichnis für den Produktworkflow in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, und Hinzufügen oder Aktualisieren von Plugins für die Implementierungsdetails in Hinzufügen oder Aktualisieren von Plugins.