Petunjuk
Tutorial pada Tugas Latar Belakang
Menggunakan @capgo/capacitor-tugas-latar-belakang
Jadwalkan pekerjaan fetch latar belakang berulang dalam sebuah Capacitor aplikasi dengan tugas yang dinamis, pendaftaran yang persisten, pengecekan status, penghapusan pendaftaran, dan trigger pengembangan.
Instal
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>
Kemudian jalankan:
npx cap sync ios
Apa yang Plugin Ini Ungkapkan
defineTask- Tentukan panggilan JavaScript untuk tugas yang dinamis.registerTaskAsync- Jadwalkan dan simpan tugas berulang.unregisterTaskAsync- Batalkan satu tugas.isTaskRegisteredAsync- Periksa satu tugas status pendaftarannya.getRegisteredTasksAsync- Daftar nama tugas yang terdaftar.getStatusAsync- Periksa ketersediaan tugas latar belakang native.triggerTaskWorkerForTestingAsync- Aktifkan tugas yang terdaftar 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 terdaftar:
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 adalah waktu yang bersifat opportunis, bukan timer yang tepat.
- Android periodic work memiliki interval minimum 15 menit.
- iOS menganggapnya sebagai tanggal mulai yang paling awal dan mungkin menjalankan lebih lanjut.
minimumIntervalTest pengolahan latar belakang iOS pada perangkat fisik. - Referensi Lengkap
__CAPGO_KEEP_0__:
- https://GitHub.com/Cap-go/__CAPGO_KEEP_1__-background-task/ https://github.com/Cap-go/capacitor-background-task/
- Teruskan dari Menggunakan @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-background-task
Keep going from Using @capgo/capacitor-background-task
Menggunakan @__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 untuk detail implementasi di @capgo/capacitor-task di latar belakang, Mulai untuk detail implementasi di Mulai, Capgo Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugin oleh Capgo, dan Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin.