Skip to main content
플러그인으로 돌아가기
@capgo/capacitor-배경 작업
튜토리얼
@capgo/capacitor-배경 작업

배경 작업

iOS와 Android에서 Expo-style 작업 등록을 사용하여 주기적인 배경 fetch 작업을 스케줄링합니다.

Guide

__CAPGO_KEEP_0__ Background Task 튜토리얼

Test on device

Capgo 앱을 다운로드하고 QR code을 스캔하세요.

배경 작업 플러그인 미리보기 QR code

@capgo/capacitor-배경 작업 사용

이름이 지정된 작업, 지속적인 등록, 상태 확인, 등록 해제 및 개발 트리거를 사용하여 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 - 이름이 지정된 작업에 대한 자바스크립트 콜백을 정의합니다.
  • 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 배경 처리를 테스트하세요.
  • Full Reference

__CAPGO_KEEP_0__:

Keep going from Using @capgo/capacitor-background-task

Using @__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 for the implementation detail in @capgo/capacitor-background-task, Getting Started for the implementation detail in Getting Started, Capgo 플러그인 디렉토리 for the product workflow in Capgo 플러그인 디렉토리, Capacitor 플러그인들에 대한 Capgo의 목록 for the implementation detail in Capacitor 플러그인들에 대한 Capgo의 목록, 그리고 플러그인 추가 또는 업데이트 for the implementation detail in 플러그인 추가 또는 업데이트.