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.

Pratinjau kode QR tugas latar belakang code

Menggunakan @capgo/capacitor-tugas-latar-belakang

Jadwalkan pekerjaan fetch latar belakang berulang dalam aplikasi Capacitor dengan tugas bernama, pendaftaran yang berlangsung, 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 Dapat Diklik Plugin Ini

  • defineTask - Tentukan panggilan JavaScript untuk tugas bernama.
  • registerTaskAsync - Simpan dan jadwalkan tugas berulang.
  • unregisterTaskAsync - Batalkan satu tugas.
  • isTaskRegisteredAsync - Periksa satu tugas keadaan pendaftaran.
  • 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,
});

Cek 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

  • Tugas latar belakang jadwalnya bersifat opportunis, bukan timer tepat.
  • Android periodic work memiliki interval minimum 15 menit.
  • iOS dianggap sebagai tanggal awal paling awal dan mungkin berjalan lebih lambat. minimumInterval __CAPGO_KEEP_0__
  • Test pengolahan latar belakang iOS pada perangkat fisik.

Referensi Lengkap

Teruskan dari Menggunakan @capgo/capacitor-tugas-latar-belakang

Jika Anda menggunakan Menggunakan @capgo/capacitor-tugas-latar-belakang untuk merencanakan pekerjaan plugin native, hubungkannya dengan @capgo/capacitor-tugas-latar-belakang untuk detail implementasi di @capgo/capacitor-task 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.