@capgo/capacitor-배경 작업 사용
이름이 지정된 작업, 지속적인 등록, 상태 확인, 등록 해제 및 개발 트리거와 함께 Capacitor 앱에서 주기적인 배경 fetch 작업을 예약합니다. 플러그인은 Android WorkManager 및 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- 이름이 지정된 작업에 대한 자바스크립트 콜백을 정의합니다.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);
플랫폼 노트
- 배경 작업 스케줄은 정확한 타이머가 아닌 기회주의적입니다.
- 안드로이드의 주기적 작업은 15분의 최소 간격을 가집니다.
- iOS는 시작 날짜로 간주하고 나중에 실행될 수 있습니다.
minimumIntervaliOS는 시작 날짜로 간주하고 나중에 실행될 수 있습니다. - 실제 장치에서 iOS 백그라운드 처리를 테스트하세요.
전체 참조
- GitHub: https://github.com/Cap-go/capacitor-background-task/
- 문서: /docs/plugins/background-task/
Using @capgo/capacitor-background-task
이 플러그인을 사용하는 경우 Using @capgo/capacitor-background-task 자연 플러그인 작업을 계획하는 데 사용하는 경우 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-background-task @capgo/capacitor-background-task capgo/capacitor 백그라운드 작업에 대한 구현 세부 사항을 위해 시작하기 __CAPGO_KEEP_0__에 대한 구현 세부 사항을 위해 Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리에서 제품 워크플로에 대한 구현 세부 사항을 위해 Capacitor Plugins by Capgo Capacitor 플러그인들에 대한 구현 세부 사항을 위해, Capgo 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트에 대한 구현 세부 사항을 위해