Menggunakan @capgo/capacitor-tugas-latar-belakang
Jadwalkan pengambilan latar belakang berulang dalam aplikasi Capacitor dengan tugas yang dinamis, pendaftaran yang persisten, pengecekan status, penghapusan pendaftaran, dan trigger pengembangan. Plugin ini menggunakan Android WorkManager dan iOS BGTaskScheduler.
Install
npm install @capgo/capacitor-background-task
npx cap sync
Pengaturan iOS
Tambahkan dukungan pengolahan latar belakang 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 Dapat Plugin Ini Sampaikan
defineTask- Tentukan panggilan JavaScript untuk tugas yang dinamis.registerTaskAsync- Tahan dan jadwalkan tugas berkala.unregisterTaskAsync- Batalkan satu tugas.isTaskRegisteredAsync- Periksa status pendaftaran satu tugas.getRegisteredTasksAsync- Daftar nama tugas yang didaftarkan.getStatusAsync- Periksa ketersediaan tugas latar belakang native.triggerTaskWorkerForTestingAsync- Aktifkan tugas yang didaftarkan secara langsung untuk pengembangan.addExpirationListener- Reaksi ketika iOS mengakhiri tugas.
- Contoh Penggunaan
Tentukan tugas di lingkungan modul sehingga tersedia ketika OS mengaktifkan aplikasi:
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,
});
- Periksa status dan nama tugas yang didaftarkan:
const status = await BackgroundTask.getStatusAsync();
const tasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, tasks });
- Aktifkan jalankan pengembangan:
await BackgroundTask.triggerTaskWorkerForTestingAsync();
- Batalkan tugas:
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);
Catatan Platform
- Jadwal tugas latar belakang bersifat opportunis, bukan timer tepat.
- Android periodic work memiliki interval minimum 15 menit.
- iOS menganggap
minimumIntervalsebagai tanggal mulai tercepat dan mungkin berjalan lebih lambat. - Uji coba pengolahan latar belakang iOS pada perangkat fisik.
Referensi Lengkap
- GitHub: https://github.com/Cap-go/capacitor-tugas-latar-belakang/
- Dokumen: /docs/plugins/tugas-latar-belakang/
Teruskan dari Menggunakan @capgo/capacitor-tugas-latar-belakang
Jika Anda menggunakan Gunakan @capgo/capacitor-background-task untuk merencanakan pekerjaan plugin native, hubungkannya dengan @capgo/capacitor-background-task untuk detail implementasi di @capgo/capacitor-background-task, Panduan Awal untuk detail implementasi di Panduan Awal, Daftar Plugin Capgo untuk alur kerja produk di Daftar Plugin Capgo, Plugin-Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin-Plugin Capacitor oleh Capgo, dan Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin.