Skip to konten

Mulai Menggunakan

GitHub

@capgo/capacitor-background-task Mengizinkan sebuah aplikasi Capacitor mendaftarkan pekerjaan berulang yang dinamai untuk sinkronisasi, pembaruan cache, pengiriman analitik, dan operasi fetch latar belakang lainnya.

Anda dapat menggunakan Setup Bantuan AI kami untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI Anda menggunakan perintah berikut:

Jendela Terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Kemudian gunakan prompt berikut:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-background-task` plugin in my project.

Jika Anda lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah:

Jendela Terminal
bun add @capgo/capacitor-background-task
bunx cap sync

Tambahkan mode pengolahan latar belakang dan identifikasi tugas yang diizinkan 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:

Jendela Terminal
bunx cap sync ios
import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

Tentukan callback di lingkungan modul sehingga terdaftar segera ketika aplikasi dimulai oleh sistem operasi.

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;
}
});

Mulai registerTaskAsync Setelah aplikasi Anda memiliki konteks yang cukup untuk mengaktifkan pekerjaan latar belakang.

await BackgroundTask.registerTaskAsync(SYNC_TASK, {
minimumInterval: 30,
requiresNetwork: true,
});

minimumInterval Waktu ini dalam menit. Android mengenakan waktu minimum 15 menit. iOS menganggap nilai ini sebagai tanggal mulai tercepat dan mungkin menjalankan tugas lebih lambat.

const status = await BackgroundTask.getStatusAsync();
const isRegistered = await BackgroundTask.isTaskRegisteredAsync(SYNC_TASK);
const registeredTasks = await BackgroundTask.getRegisteredTasksAsync();
console.log({ status, isRegistered, registeredTasks });

Gunakan trigger tes di pengembangan atau QA. Ia memanggil setiap tugas yang terdaftar secara langsung.

await BackgroundTask.triggerTaskWorkerForTestingAsync();

Batalkan Pendaftaran Tugas

Judul Bagian: “Menghapus Tugas”
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

iOS dapat menghentikan tugas latar belakang sebelum pekerjaan JavaScript Anda selesai. Dengarkan event kadaluarsa ketika membersihkan atau memantau titik kontrol penting.

const expiration = await BackgroundTask.addExpirationListener((event) => {
console.warn('Background task expired', event.taskName, event.taskId);
});
await expiration.remove();

Kompatibilitas Tugas Latar Belakang React Native

Judul Bagian: “Kompatibilitas Tugas Latar Belakang React Native”

Plugin ini juga menampilkan layer kompatibilitas kecil untuk aplikasi yang bermigrasi dari react-native-background-task.

import { BackgroundTask } from '@capgo/capacitor-background-task';
BackgroundTask.define(async () => {
await fetch('https://api.example.com/sync', { method: 'POST' });
});
await BackgroundTask.schedule({
period: 1800,
});
  • Pengaturan latar belakang adalah opportunis, bukan tepat waktu.
  • Tetapkan pekerjaan singkat dan idempoten.
  • Simpan semua keadaan yang Anda butuhkan sebelum kembali. BackgroundTaskResult.Success.
  • Hindari mengandalkan tugas latar belakang untuk jadwal pengguna yang terlihat atau alarm.

Tetapkan langkah selanjutnya dari Getting Started.

Bab berjudul “Tetapkan langkah selanjutnya dari Getting Started”.

Jika Anda menggunakan Mulai Menggunakan untuk merencanakan kerja plugin asli, hubungkannya dengan Menggunakan @capgo/capacitor-background-task untuk kemampuan asli di Menggunakan @capgo/capacitor-background-task, Capgo Direktori Plugin untuk alur kerja produk di Direktori Plugin Capgo Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin Capacitor oleh Capgo Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.