본문으로 이동
플러그인으로 돌아가기
@capgo/capacitor-배경 작업
튜토리얼
github.com/Cap-go에 의해

배경 작업

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

가이드

배경 작업에 대한 튜토리얼

Using @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.

iOS 설정

npm install @capgo/capacitor-background-task
npx cap sync

__CAPGO_KEEP_1__

배경 처리 지원을 추가하세요. 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 사용 예시

예시

모듈 스코프에서 작업을 정의하여 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 배경 처리를 테스트하려면 물리적 장치를 사용하세요.
  • 전체 참조

__CAPGO_KEEP_0__:

capgo에서 capacitor-background-task를 계속 사용하세요.

__CAPGO_KEEP_0__을 사용 중이라면 capgo을 사용하여 capacitor-background-task를 사용하고 있습니다. __CAPGO_KEEP_0__을 사용하여 capgo을 capacitor-background-task와 연결하세요. capgo을 사용하여 capacitor-background-task의 구현 세부 사항을 확인하세요. 시작하기 __CAPGO_KEEP_1__-background-task의 구현 세부 사항을 확인하세요. Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리의 제품 워크플로우를 확인하세요. Capacitor 플러그인들에 의해 Capgo Capacitor 플러그인들에 의해 Capgo의 구현 세부 정보를 위해 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 정보를 위해