Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-background-task`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/background-task/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
@capgo/capacitor-background-task memungkinkan aplikasi Capacitor mendaftarkan job periodik bernama untuk sinkronisasi, pembaruan cache, pengiriman analitik, dan operasi background fetch lainnya.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
npm install @capgo/capacitor-background-tasknpx cap syncSetup iOS
Bagian berjudul “iOS Setup”Tambahkan mode pemrosesan latar belakang dan identifier tugas yang diizinkan 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 iosimport { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';Kesalahan umum
Bagian berjudul “Kesalahan umum”- Cakupan modul: daftarkan
defineTasksebelumregisterTaskAsync. - ID iOS: cocokkan
BGTaskSchedulerPermittedIdentifiersentri. - Interval: OS mungkin menunda job melebihi
minimumInterval.
Definisikan Task
Bagian berjudul “Definisikan Task”Definisikan callback di scope module agar langsung terdaftar saat app dijalankan oleh sistem operasi.
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; }});Daftarkan Jadwal
Bagian berjudul “Daftarkan Jadwal”Panggil registerTaskAsync setelah app memiliki cukup context untuk mengaktifkan background job.
await BackgroundTask.registerTaskAsync(SYNC_TASK, { minimumInterval: 30, requiresNetwork: true,});minimumInterval dalam satuan menit. Android mewajibkan minimal 15 menit. iOS menganggap nilai tersebut sebagai waktu mulai paling awal dan mungkin berjalan lebih lambat.
Cek Status
Bagian berjudul “Periksa Status”const status = await BackgroundTask.getStatusAsync();const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });Jalankan Uji Coba
Bagian berjudul “Jalankan Uji Coba”Gunakan test trigger saat development atau QA. Trigger ini memanggil semua task yang terdaftar secara langsung.
await BackgroundTask.triggerTaskWorkerForTestingAsync();Batalkan Pendaftaran Tugas
Bagian berjudul “Batalkan Registrasi Task”await BackgroundTask.unregisterTaskAsync(SYNC_TASK);Kedaluwarsa iOS
Bagian berjudul “Masa Berlaku iOS”iOS dapat menghentikan background task sebelum pekerjaan JavaScript Anda selesai. Dengarkan event expiration saat cleanup atau checkpointing penting.
const expiration = await BackgroundTask.addExpirationListener((event) => { console.warn('Background task expired', event.taskName, event.taskId);});
await expiration.remove();Kompatibilitas Background Task React Native
Bagian berjudul “React Native Background Task Compatibility”Plugin ini juga menyediakan lapisan kompatibilitas kecil untuk aplikasi yang bermigrasi dari react-native-background-task.
import { BackgroundTask } from '@capgo/capacitor-background-task';
BackgroundTask.define(async () => { await fetch('https://api.example.com/sync', { method: 'POST' });});
await BackgroundTask.schedule({ period: 1800,});Catatan Produksi
Bagian berjudul “Catatan Produksi”- Penjadwalan background bersifat oportunistik, bukan tepat waktu.
- Jaga agar pekerjaan singkat dan idempoten.
- Persist state yang Anda butuhkan sebelum mengembalikan
BackgroundTaskResult.Success. - Hindari mengandalkan background task untuk tenggat waktu atau alarm yang terlihat oleh pengguna.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan pekerjaan plugin native, hubungkan dengan Menggunakan @capgo/capacitor-background-task untuk kapabilitas native di Menggunakan @capgo/capacitor-background-task, Direktori Plugin Capgo untuk alur kerja produk di Direktori Plugin Capgo, Plugin Capacitor oleh Capgo untuk detail implementasi pada Capacitor Plugins oleh Capgo Menambahkan atau Memperbarui Plugin untuk detail implementasi di Menambahkan atau Memperbarui Plugin, dan Alternatif Plugin Ionic Enterprise untuk alur kerja produk dalam Alternatif Plugin Ionic Enterprise.