Using @capgo/capacitor-background-task
Schedule periodic background fetch work in a Capacitor app with named tasks, persistent registration, status checks, unregistering, and a development trigger. The plugin uses Android WorkManager and iOS BGTaskScheduler.
iOSの設定
npm install @capgo/capacitor-background-task
npx cap sync
iOS セットアップ
実行 ios/App/App/Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>app.capgo.backgroundtask.processing</string>
</array>
このプラグインが提供するもの
npx cap sync ios
- 名前付きタスクのためのJavaScriptコールバックを定義します。
defineTask- __CAPGO_KEEP_1__-background-taskregisterTaskAsync- iOSのバックグラウンドタスクを実行し、定期的にタスクをスケジュールする。unregisterTaskAsync- 1 つのタスクをキャンセルする。isTaskRegisteredAsync- 1 つのタスクの登録状態を確認する。getRegisteredTasksAsync- 登録されたタスク名の一覧を表示する。getStatusAsync- ネイティブのバックグラウンドタスクの利用可能性を確認する。triggerTaskWorkerForTestingAsync- 開発用に登録されたタスクを即時実行する。addExpirationListener- iOSがタスクを期限切れとして扱ったときに反応する。
- 例としての使用方法
- モジュールスコープでタスクを定義して、OSがアプリを起動するときに利用できるようにする:
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,
});
- ステータスと登録されたタスク名を確認する:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
- 開発用の実行をトリガーする:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
- タスクをキャンセルする:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
プラットフォームノート
- バックグラウンドタスクのスケジュールは、厳密なタイマーではなく、機会主義的なものです。
- Androidの周期的作業には、15分間隔の最小間隔があります。
- iOSは
minimumIntervalを - iOSのバックグラウンド処理をテストするには、物理デバイスを使用してください。
フルリファレンス
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- ドキュメント: /docs/plugins/background-task/
Using @capgo/capacitor-background-taskから続けてください。
Capacitorを使用している場合 Using @capgo/capacitor-background-task ネイティブプラグインの作業を計画し、 @capgo/capacitor-バックグラウンドタスク @capgo/capacitorバックグラウンドタスクの実装詳細 はじめに Getting Startedの実装詳細については Capgo プラグインディレクトリ for the product workflow in Capgo Plugin Directory, Capacitor プラグインは Capgo によって提供されます。 for Capacitor の実装詳細については、Capgo によって提供されるプラグインで Capacitor プラグインの追加または更新 Capacitor プラグインの追加または更新の実装詳細については