@capgo/capacitor-background-task の使い方
Capacitor アプリで、名前付きタスク、永続的な登録、ステータス確認、登録解除、開発用トリガーを使用して、定期的なバックグラウンドフェッチ処理をスケジュールします。このプラグインは Android WorkManager と iOS BGTaskScheduler を使用しています。
インストール
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
このプラグインで利用可能な機能
defineTask- 名前付きタスクの JavaScript コールバックを定義します。registerTaskAsync- 定期タスクを永続化してスケジュールします。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/
@capgo/capacitor-background-task の使用から続ける
使用している場合 @capgo/capacitor-background-task の使い方 ネイティブプラグインの作業を計画するには、次と連携してください: @capgo/capacitor-background-task @capgo/capacitor-background-task の実装の詳細については、 スタートガイド スタートガイドの実装詳細については、 Capgo プラグインディレクトリ Capgo プラグインディレクトリのプロダクトワークフローについては、 Capgo による Capacitor プラグイン Capgo による Capacitor Plugins の実装詳細、および プラグインの追加または更新 プラグインの追加または更新に関する実装詳細についてはこちら。