@capgo/capacitor-background-task 사용하기
Capacitor 앱에서 이름이 지정된 작업, 영구 등록, 상태 확인, 등록 해제, 개발용 트리거를 사용해 주기적인 백그라운드 fetch 작업을 스케줄링하세요. 이 플러그인은 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- 특정 태스크 취소isTaskRegisteredAsync- 특정 태스크의 등록 상태 확인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의 구현 세부 사항은, 시작하기 Getting Started의 구현 상세 내용은 Capgo 플러그인 디렉토리 Capgo Plugin Directory의 제품 워크플로우에 맞춰, Capgo의 Capacitor 플러그인 Capgo의 Capacitor Plugins 구현 세부 사항 및 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 사항은.