Verwenden Sie @capgo/capacitor-background-task
Planen Sie periodische Hintergrundabfragen in einer Capacitor-App mit benannten Aufgaben, persistenter Registrierung, Statusprüfungen, Entregistrierung und einem Entwicklungs-Trigger. Das Plugin verwendet Android WorkManager und iOS BGTaskScheduler.
Installieren
npm install @capgo/capacitor-background-task
npx cap sync
iOS-Einrichtung
Hinzufügen von Hintergrundverarbeitungsfunktionen 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>
Hinweis: Sie müssen das Plugin in Ihrer App installieren, bevor Sie es verwenden können.
npx cap sync ios
Was dieses Plugin bereitstellt
defineTask- Definieren Sie die JavaScript-Rückrufmethode für eine benannte Aufgabe.registerTaskAsync- Persistieren und planen Sie eine periodische Aufgabe.unregisterTaskAsync- Stornieren Sie eine Aufgabe.isTaskRegisteredAsync- Überprüfen Sie den Registrierungszustand einer Aufgabe.getRegisteredTasksAsync- Registrierte Aufgaben auflisten.getStatusAsync- Die Verfügbarkeit von native Hintergrundaufgaben überprüfen.triggerTaskWorkerForTestingAsync- Registrierte Aufgaben sofort für die Entwicklung auslösen.addExpirationListener- Reagieren, wenn iOS eine Aufgabe abläuft.
Beispiel für die Verwendung
Definieren Sie die Aufgabe im Modulbereich, damit 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 Aufgaben:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
Eine Entwicklungsdurchführung auslösen:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
Die Aufgabe stornieren:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Hinweise zur Plattform
- Hintergrundaufgabenskalen sind opportunistisch, nicht genaue Timer.
- Android-Periodische Arbeit hat einen Mindestabstand von 15 Minuten.
- iOS behandelt sie
minimumIntervalals frühesten Beginnstermin und kann später ausgeführt werden. - Testen Sie die Hintergrundverarbeitung von iOS auf einem physischen Gerät.
Vollständige Referenz
- GitHub: https://github.com/Cap-go/capacitor-hintergrundaufgabe/
- Dokumentation: /docs/plugins/hintergrundaufgabe/
Fahren Sie mit dem Lesen von Using @capgo/capacitor-hintergrundaufgabe fort.
Wenn Sie Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-hintergrundaufgabe verwenden Using @capgo/capacitor-background-task @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-hintergrundaufgabe @capgo/capacitor-background-task zur Implementierungsdetail in @capgo/capacitor-Hintergrundaufgabe, Einstieg zur Implementierungsdetail in Einstieg, Capgo Plugin-Verzeichnis zur Produktworkflow in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo zur Implementierungsdetail in Capacitor Plugins von Capgo, und Plugins hinzufügen oder aktualisieren zur Implementierungsdetail in Plugins hinzufügen oder aktualisieren.