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

Tugas Latar

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

Panduan

Tutorial pada Tugas Latar Belakang

Tes pada perangkat

Unduh aplikasi Capgo, kemudian scan kode QR code.

Tautan QR pratinjau plugin Tugas Latar Belakang code

Menggunakan @capgo/capacitor-tugas-latar-belakang

Jadwalkan pekerjaan fetch latar belakang berkala dalam aplikasi Capacitor dengan tugas yang dinamai, pendaftaran yang persisten, pengecekan status, penghapusan pendaftaran, dan pengaktifan pengembang. Plugin ini menggunakan Android WorkManager dan iOS BGTaskScheduler.

Pasang

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 Dibuka oleh Plugin ini

  • defineTask - Tentukan callback JavaScript untuk sebuah tugas bernama.
  • registerTaskAsync - Simpan dan jadwalkan tugas periodik.
  • 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

Definisikan tugas di lingkungan modul sehingga tersedia ketika OS membangunkan 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 });

Triggerkan 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 minimumInterval sebagai tanggal mulai tercepat dan mungkin berjalan lebih lambat.
  • Uji 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 asli, hubungkannya dengan @capgo/capacitor-tugas-latar-belakang untuk detail implementasi di @capgo/capacitor-tugas-latar-belakang, Pembelajaran Awal untuk detail implementasi di Pembelajaran Awal, Capgo Direktori Plugin untuk alur kerja produk di Direktori 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.