Lebih lanjut ke konten utama
Kembali ke plugin
@capgo/capacitor-background-task
Tutorial
@capgo/capacitor-background-task

Ikon Tugas Latar Belakang

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

Petunjuk

Tutorial tentang Tugas Latar Belakang

Menggunakan @capgo/capacitor-tugas-latar-belakang

Jadwalkan pekerjaan fetch latar belakang berkala dalam aplikasi Capacitor dengan tugas bernama, registrasi yang berlangsung, pengecekan status, penghapusan registrasi, dan pengaktifan pengembang.

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 Dapat Plugin Ini Sampaikan

  • 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 - Daftarkan nama-nama tugas yang terdaftar.
  • getStatusAsync - Periksa ketersediaan tugas latar belakang native.
  • triggerTaskWorkerForTestingAsync - Aktifkan tugas yang terdaftar secara langsung untuk pengembangan.
  • addExpirationListener - Berinteraksi 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 pengembangan:

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Batalkan tugas:

await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

Catatan Platform

  • Jadwal tugas latar belakang bersifat opportunis, bukan timer tepat.
  • Pekerjaan berkala Android memiliki interval minimum 15 menit.
  • iOS menganggap minimumInterval sebagai tanggal mulai tercepat dan mungkin berjalan lebih lambat.
  • Lakukan pengujian proses 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-tugas-latar-belakang, Membuat Mulai untuk detail implementasi di Membuat Mulai, Capgo Direktori Plugin untuk alur kerja produk di Direktori Plugin Capgo 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.