Zum Inhalt springen

Einstieg

GitHub

@capgo/capacitor-background-task lässt ein Capacitor-Anwendungsprogramm regelmäßige Aufgaben für Synchronisierungen, Cache-Refreshes, die Lieferung von Analysedaten und andere Hintergrundabfragen registrieren.

Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihre AI-Werkzeug hinzufügen, indem Sie den folgenden Befehl ausführen:

Terminal-Fenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Verwenden Sie dann den folgenden Prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.

Wenn Sie die manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und folgen Sie den plattform-spezifischen Anweisungen unten:

Terminal-Fenster
npm install @capgo/capacitor-background-task
npx cap sync

Fügen Sie die Hintergrundverarbeitung und die genehmigte Aufgabenidentifikation hinzu 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:

Terminalfenster
npx cap sync ios
import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

Definieren Sie die Callback-Funktion im Modulbereich, damit sie so schnell wie möglich beim Start des Betriebssystems registriert wird.

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;
}
});

Anruf registerTaskAsync warten Sie, bis Ihr App genügend Kontext hat, um den Hintergrundjob zu aktivieren.

await BackgroundTask.registerTaskAsync(SYNC_TASK, {
minimumInterval: 30,
requiresNetwork: true,
});

minimumInterval Die Zeit ist in Minuten angegeben. Android erzwingt eine Mindestzeit von 15 Minuten. iOS behandelt den Wert als frühesten Beginndatum und kann später laufen.

const status = await BackgroundTask.getStatusAsync();
const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);
const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });

Verwenden Sie den Testauslöser in der Entwicklung oder QA. Er ruft jeden registrierten Auftrag sofort auf.

await BackgroundTask.triggerTaskWorkerForTestingAsync();
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

iOS kann einen Hintergrundauftrag vor dem Abschluss Ihrer JavaScript-Arbeit beenden. Hören Sie sich bei der Reinigung oder beim Checkpointen auf Ablaufereignisse an.

const expiration = await BackgroundTask.addExpirationListener((event) => {
console.warn('Background task expired', event.taskName, event.taskId);
});
await expiration.remove();

Der Plugin bietet auch eine kleine Kompatibilitätslayer für Apps, die von react-native-background-task.

import { BackgroundTask } from '@capgo/capacitor-background-task';
BackgroundTask.define(async () => {
await fetch('https://api.example.com/sync', { method: 'POST' });
});
await BackgroundTask.schedule({
period: 1800,
});

Produktionshinweise

Produktionshinweise
  • Hintergrund-Aufgaben werden opportunisch und nicht genau geplant.
  • Halten Sie die Arbeit kurz und idempotent.
  • Speichern Sie jeden Zustand, den Sie benötigen, bevor Sie zurückkehren. BackgroundTaskResult.Success.
  • Vermeiden Sie es, sich auf Hintergrund-Aufgaben für sichtbare Benutzer-Deadlines oder Alarms zu verlassen.

Weiter von Getting Started

Weiter von Getting Started

Wenn Sie native Plugin-Arbeit planen, verbinden Sie es mit Getting Started für die native Fähigkeit in Using @capgo/capacitor-background-task Using @capgo/capacitor-background-task Capgo Plugin-Verzeichnis für den Produktworkflow in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren, und Ionic Enterprise Plugin Alternativen für den Produktworkflow in Ionic Enterprise Plugin Alternativen.