Lompat ke Konten

Getting Started

GitHub

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

Kamu bisa menggunakan Setup Bantuan AI kami untuk menginstal plugin ini. Tambahkan Capgo kemampuan ke alat AI kamu menggunakan perintah berikut:

Tampilan jendela terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Lalu 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 kamu lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:

Tampilan jendela terminal
npm install @capgo/capacitor-background-task
npx 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:

Tampilan jendela terminal
npx 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;
}
});

Panggilan registerTaskAsync context

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

minimumInterval Salin ke Papan Klip

adalah dalam menit. Android menetapkan batasan minimum 15 menit. iOS menganggap nilai sebagai tanggal mulai tercepat dan mungkin menjalankan lebih lanjut.

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

Salin ke Papan Klip

Aktifkan Uji Coba

Judul Bagian: “Aktifkan Uji Coba”

await BackgroundTask.triggerTaskWorkerForTestingAsync();
await BackgroundTask.unregisterTaskAsync(SYNC_TASK);

iOS dapat menghentikan tugas latar belakang sebelum pekerjaan JavaScript Anda selesai. Dengarkan event kadaluarsa ketika membersihkan atau memeriksa poin 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,
});

Catatan Produksi

Catatan Produksi
  • Pengaturan latar belakang tidak tepat, melainkan bersifat opportunis.
  • Tetapkan pekerjaan singkat dan idempoten.
  • Simpan semua keadaan yang Anda butuhkan sebelum kembali. BackgroundTaskResult.Success.
  • Hindari mengandalkan tugas latar belakang untuk menetapkan deadline atau alarm yang dapat dilihat pengguna.

Jika Anda menggunakan Getting Started untuk merencanakan pekerjaan plugin asli, hubungkannya dengan Menggunakan @capgo/capacitor-tugas-latar-belakang untuk kemampuan asli di Menggunakan @capgo/capacitor-tugas-latar-belakang, Capgo Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugin oleh Capgo Menginstal atau Mengupdate Plugin untuk detail implementasi di Menginstal atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.