Zum Hauptinhalt springen
@capgo/capacitor-background-task Device-APIs Open Source

Hintergrundaufgabe Capacitor Plugin

Plane regelmäßige Background-Fetch-Tasks auf iOS und Android mit Task-Registrierung im Expo-Stil

Installieren

bun add @capgo/capacitor-background-task bunx cap sync
npm, pnpm oder yarn
  • npm install @capgo/capacitor-background-task
  • pnpm add @capgo/capacitor-background-task
  • yarn add @capgo/capacitor-background-task

Anleitung

So nutzt du Background Task in Capacitor

Auf dem Gerät testen

Lade die Capgo App herunter und scanne den QR code.

QR-Code für die Vorschau des Background Task Plugins code

@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 minimumInterval als frühestmögliches Startdatum und kann später ausgeführt werden.
  • Teste iOS Background Processing auf einem echten Gerät.

Vollständige Referenz

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.

FAQ

FAQ zum Background Task Plugin

Wie installiere ich das Background Task Plugin in einer Capacitor-App?

Führe &quot;bun add @capgo/capacitor-background-task&quot; (oder &quot;npm install @capgo/capacitor-background-task&quot;) aus und danach &quot;bunx cap sync&quot;, damit die iOS- und Android-Projekte die nativen code übernehmen. Importiere es in deiner App code aus &quot;@capgo/capacitor-background-task&quot;.

Funktioniert @capgo/capacitor-background-task mit React, Vue und Angular?

Ja. Background Task ist ein Capacitor Package und funktioniert daher mit jedem Web-Framework, das in Capacitor läuft, einschließlich Ionic, React, Vue, Angular, Svelte und reinem JavaScript.

Welche Capacitor-Version unterstützt @capgo/capacitor-background-task?

Capgo Plugins folgen der Major-Version von Capacitor: Nutze die Plugin-Major-Version, die zu deiner Capacitor Major-Version passt (z. B. Plugin v8 bei Capacitor 8). Die Kompatibilitätstabelle im GitHub README listet die gepflegten Versionen auf.

Ist @capgo/capacitor-background-task kostenlos und Open Source?

Ja. Der Quellcode von code ist öffentlich auf GitHub unter https://github.com/Cap-go/capacitor-background-task/ und das Package lässt sich kostenlos über npm installieren. Bug-Reports und Pull Requests sind willkommen.

Kann ich code mit Background Task aktualisieren, ohne ein App Store Review zu benötigen?

Die Installation oder ein Upgrade des Plugins ändert den nativen code, weshalb ein neuer Store-Build nötig ist. Danach können JavaScript-, HTML- und CSS-Änderungen, die das Plugin aufrufen, sofort per Capgo Live Updates ausgeliefert werden.

Background-Task-Änderungen ausrollen, ohne auf das App-Review zu warten

Sobald das Plugin in deinem Store-Build ist, bringt Capgo mit Live-Updates deine JavaScript-, HTML- und CSS-Änderungen in Minuten zu den Nutzern.

Starte mit Capgo