Langsung ke konten utama
@capgo/capacitor-background-task API Perangkat Open source

Tugas Latar Belakang plugin Capacitor

Jadwalkan task background fetch berkala di iOS dan Android dengan registrasi task ala Expo

Instal

bun add @capgo/capacitor-background-task bunx cap sync
npm, pnpm atau yarn
  • npm install @capgo/capacitor-background-task
  • pnpm add @capgo/capacitor-background-task
  • yarn add @capgo/capacitor-background-task

Panduan

Cara menggunakan Background Task di Capacitor

Tes di perangkat

Download aplikasi Capgo, lalu scan QR code.

Link QR pratinjau plugin Background Task code

Menggunakan @capgo/capacitor-background-task

Jadwalkan fetch background berkala di aplikasi Capacitor dengan task bernama, registrasi persisten, pengecekan status, unregister, dan trigger development. Plugin ini memakai Android WorkManager dan iOS BGTaskScheduler.

Instal

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

Setup iOS

Tambahkan dukungan background processing ke ios/App/App/Info.plist:

<key>UIBackgroundModes</key>
<array>
  <string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
  <string>app.capgo.backgroundtask.processing</string>
</array>

Lalu jalankan:

npx cap sync ios

Apa yang Diekspos Plugin Ini

  • defineTask - Definisikan callback JavaScript untuk task bernama.
  • registerTaskAsync - Simpan dan jadwalkan task periodik.
  • unregisterTaskAsync - Batalkan satu task.
  • isTaskRegisteredAsync - Cek status registrasi sebuah task.
  • getRegisteredTasksAsync - Tampilkan nama task yang terdaftar.
  • getStatusAsync - Cek ketersediaan native background task.
  • triggerTaskWorkerForTestingAsync - Trigger task terdaftar secara langsung untuk development.
  • addExpirationListener - Respons saat iOS menghentikan task karena kedaluwarsa.

Contoh Penggunaan

Definisikan task di scope module agar tersedia saat OS membangunkan app:

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,
});

Cek status dan nama task yang terdaftar:

const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();

console.log({ status, tasks });

Trigger run development:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Batalkan task:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Catatan Platform

  • Jadwal background task ditentukan oleh sistem, bukan timer yang presisi.
  • Periodic work di Android memiliki interval minimal 15 menit.
  • iOS menganggap minimumInterval sebagai tanggal mulai paling awal dan bisa berjalan lebih lambat.
  • Uji background processing iOS di perangkat fisik.

Referensi Lengkap

Lanjutkan dari bagian Menggunakan @capgo/capacitor-background-task

Jika Anda menggunakan Menggunakan @capgo/capacitor-background-task untuk merencanakan pekerjaan plugin native, hubungkan dengan @capgo/capacitor-background-task untuk detail implementasi di @capgo/capacitor-background-task, Panduan Memulai untuk detail implementasi di Getting Started, Direktori Plugin Capgo untuk alur kerja produk di Direktori Plugin Capgo, Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin Capacitor oleh Capgo, dan Menambahkan atau Memperbarui Plugin untuk detail implementasi di bagian Menambahkan atau Memperbarui Plugin.

FAQ

FAQ plugin Background Task

Bagaimana cara install plugin Background Task di aplikasi Capacitor?

Jalankan "bun add @capgo/capacitor-background-task" (atau "npm install @capgo/capacitor-background-task"), lalu jalankan "bunx cap sync" agar proyek iOS dan Android mendeteksi code native. Import dari "@capgo/capacitor-background-task" di dalam code aplikasi Anda.

Apakah @capgo/capacitor-background-task bisa dipakai dengan React, Vue, dan Angular?

Ya. Background Task adalah package Capacitor, jadi bisa dipakai dengan framework web apa pun yang berjalan di dalam Capacitor, termasuk Ionic, React, Vue, Angular, Svelte, dan JavaScript biasa.

Versi Capacitor mana yang didukung @capgo/capacitor-background-task?

Plugin Capgo mengikuti versi mayor Capacitor: gunakan versi mayor plugin yang sesuai dengan versi mayor Capacitor Anda (contoh: plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub mencantumkan versi yang masih di-maintain.

Apakah @capgo/capacitor-background-task gratis dan open source?

Ya. Source code tersedia untuk publik di GitHub pada https://github.com/Cap-go/capacitor-background-task/ dan package-nya gratis diinstall dari npm. Laporan bug dan pull request sangat kami terima.

Bisakah saya update code yang memakai Background Task tanpa review App Store?

Instalasi atau upgrade plugin akan mengubah native code, jadi butuh build store baru. Setelah itu, perubahan JavaScript, HTML, dan CSS yang memanggil plugin bisa langsung dikirim lewat live updates Capgo.

Rilis perubahan Background Task tanpa menunggu review aplikasi

Setelah plugin ada di build store Anda, live updates Capgo akan mengirim perubahan JavaScript, HTML, dan CSS ke pengguna dalam hitungan menit.

Mulai dengan Capgo