Lompat ke konten utama
Kembali ke plugin
@capgo/capacitor-tugas-latar-belakang
Tutorial
@capgo/capacitor-tugas-latar-belakang

Tugas Latar Belakang

Jadwalkan tugas fetch latar belakang berulang pada iOS dan Android dengan registrasi tugas Expo-style

Petunjuk

Tutorial pada Tugas Latar Belakang

Tes pada perangkat

Unduh aplikasi Capgo terlebih dahulu, kemudian scan kode QR code.

Tugas Latar Belakang plugin pratinjau QR code

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. minimumInterval Test pengolahan latar belakang iOS pada perangkat fisik.
  • Referensi Lengkap

__CAPGO_KEEP_0__:

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.