@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.
インストール
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/
Using @capgo/capacitor-background-task
Capacitorを使用している場合 Using @capgo/capacitor-background-task nativeプラグインの作業を計画するには、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-background-task @capgo/capacitor-background-task Capacitor背景タスクの実装詳細については@capgo/capacitor-background-taskを参照してください。 Getting Started Capacitor背景タスクの実装詳細についてはGetting Startedを参照してください。 Capgo Plugin Directory for the product workflow in Capgo Plugin Directory, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, and プラグインの追加または更新 プラグインの追加または更新の実装詳細についてはプラグインの追加または更新を参照してください。