@capgo/capacitor-バックグラウンドタスクを使用
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 セットアップ
__CAPGO_KEEP_0__の背景処理サポートを追加する 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がタスクを期限切れとして削除したときに反応する。
例用
__CAPGO_KEEP_0__
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-コンタイトログメカト/
- Docs: /docs/plugins/コンタイトログメカト/
Keep going from Using @capgo/capacitor-background-task
エンディショナを用していますですにはコンタイトログメカトをコンタイトログメカトにようただ。 Using @capgo/capacitor-background-task エンディショナを用していますですにはコンタイトログメカトをコンタイトログメカトにようただ。エンディショナをコンタイトログメカトにようただ。 @capgo/capacitor-background-task for the implementation detail in @capgo/capacitor-background-task, コンタイトログメカトのコンタイトログメカトにようただ。エンディショナをコンタイトログメカトにようただ。 コンタイトログメカトのコンタイトログメカトにようただ。エンディショナをコンタイトログメカトにようただ。 Capgo Plugin Directory Capgo プラグイン ディレクトリ内での製品ワークフローについて Capacitor プラグインは Capgo によって提供されます Capacitor プラグインの実装詳細については、Capacitor プラグインは Capgo によって提供されます。また、 プラグインの追加または更新 __CAPGO_KEEP_0__ プラグインの実装詳細については、プラグインの追加または更新