@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がタスクを期限切れとして扱ったときに反応します。
Example Usage
モジュールスコープでタスクを定義することで、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);
Platform Notes
- バックグラウンドタスクのスケジュールは、厳密なタイマーではなく機会的です。
- Androidの周期的ワークには15分間隔の最小間隔があります。
- iOSは
minimumInterval__CAPGO_KEEP_0__ - を最も早い開始日として扱い、実行が遅れる可能性があります。
実機でiOSのバックグラウンド処理をテストする
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- https://__CAPGO_KEEP_0__.com/Cap-go/__CAPGO_KEEP_1__-background-task/
Keep going from Using @capgo/capacitor-background-task
@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-background-task Using @capgo/capacitor-background-task @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-background-task を使用している場合、ネイティブプラグインの作業を計画するには、@capgo/capacitor-background-taskを接続してください。 実装詳細については @capgo/capacitor-background-task に参照してください。 Getting Started 実装詳細については Getting Started に参照してください。 Capgo プラグインディレクトリ Capgo プラグインディレクトリの製品ワークフローについては Capacitor プラグインの Capgo によるリスト 実装詳細については Capacitor プラグインの Capgo によるリストに参照してください。 プラグインの追加または更新 実装詳細についてはプラグインの追加または更新に参照してください。