Siklus Proses Aplikasi Chrome

Runtime aplikasi dan halaman peristiwa bertanggung jawab untuk mengelola siklus proses aplikasi. Runtime aplikasi mengelola penginstalan aplikasi, mengontrol halaman acara, dan dapat mematikan aplikasi kapan saja. Acara mendengarkan peristiwa dari runtime aplikasi dan mengelola apa yang diluncurkan dan bagaimana caranya.

Cara kerja siklus proses

Runtime aplikasi memuat halaman peristiwa dari desktop pengguna dan peristiwa onLaunch() diaktifkan. Ini akan memberi tahu halaman peristiwa terkait jendela apa yang akan diluncurkan beserta dimensinya.

cara kerja siklus proses aplikasi

Ketika laman peristiwa tidak memiliki JavaScript yang dieksekusi, tidak ada callback yang tertunda, dan tidak ada jendela yang terbuka, runtime menghapus muatan halaman peristiwa dan menutup aplikasi. Sebelum menghapus muatan halaman acara, Peristiwa onSuspend() diaktifkan. Hal ini memberi halaman acara kesempatan untuk melakukan tugas pembersihan sederhana sebelum aplikasi ditutup.

Membuat halaman dan jendela peristiwa

Semua aplikasi harus memiliki halaman acara. Halaman ini berisi logika tingkat atas dari aplikasi dengan tidak memiliki UI-nya sendiri dan bertanggung jawab membuat jendela untuk semua halaman aplikasi lainnya.

Halaman Create event

Untuk membuat halaman acara, sertakan "latar belakang" dalam manifes aplikasi dan menyertakan background.js dalam array skrip. Skrip library yang digunakan oleh halaman acara harus ditambahkan "latar belakang" isian terlebih dahulu:

"background": {
  "scripts": [
    "foo.js",
    "background.js"
  ]
}

Halaman acara Anda harus menyertakan fungsi onLaunched(). Fungsi ini dipanggil saat aplikasi diluncurkan dengan cara apa pun:

chrome.app.runtime.onLaunched.addListener(function() {
  // Tell your app what to launch and how.
});

Membuat jendela

Halaman acara dapat membuat satu atau beberapa jendela atas pertimbangannya sendiri. Secara {i>default<i}, jendela ini yang dibuat dengan koneksi skrip ke halaman acara dan dapat langsung dijalankan skripnya oleh halaman acara.

Aplikasi Windows di Chrome tidak dikaitkan dengan jendela browser Chrome apa pun. Mereka memiliki bingkai dengan bilah judul dan kontrol ukuran, dan ID jendela yang disarankan. Windows tanpa ID tidak akan memulihkan ukuran dan lokasinya setelah dimulai ulang.

Berikut adalah contoh jendela yang dibuat dari background.js:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('main.html', {
    id: 'MyWindowID',
    bounds: {
      width: 800,
      height: 600,
      left: 100,
      top: 100
    },
    minWidth: 800,
    minHeight: 600
  });
});

Termasuk Data Peluncuran

Bergantung pada cara aplikasi diluncurkan, Anda mungkin perlu menangani data peluncuran di halaman acara. Menurut secara default, tidak ada data peluncuran saat aplikasi dimulai oleh peluncur aplikasi. Untuk aplikasi yang memiliki Anda harus menangani parameter launchData.items agar dapat diluncurkan dengan .

Memproses peristiwa runtime aplikasi

Runtime aplikasi mengontrol penginstalan, update, dan uninstal aplikasi. Anda tidak perlu melakukan apa pun untuk menyiapkan runtime aplikasi, tetapi halaman peristiwa Anda dapat memproses peristiwa onInstalled() yang akan disimpan setelan lokal dan peristiwa onSuspend() untuk melakukan tugas pembersihan sederhana sebelum halaman acara dibongkar.

Menyimpan setelan lokal

chrome.runtime.onInstalled() dipanggil saat aplikasi Anda pertama kali diinstal atau saat aplikasi telah diinstal diperbarui. Setiap kali fungsi ini dipanggil, peristiwa onInstalled akan diaktifkan. Halaman acara dapat memproses peristiwa ini dan menggunakan Storage API untuk menyimpan dan memperbarui setelan lokal (lihat juga Opsi penyimpanan).

chrome.runtime.onInstalled.addListener(function() {
  chrome.storage.local.set(object items, function callback);
});

Mencegah kebocoran data

Pengguna dapat meng-uninstal aplikasi Anda kapan saja. Saat di-uninstal, tidak ada kode eksekusi atau data pribadi tertinggal. Hal ini dapat menyebabkan kehilangan data karena pengguna mungkin meng-uninstal aplikasi yang telah diedit, data yang tidak disinkronkan. Anda harus menyimpan data untuk mencegah kehilangan data.

Setidaknya, Anda harus menyimpan setelan pengguna sehingga jika pengguna menginstal ulang aplikasi Anda, informasi mereka masih tersedia untuk digunakan kembali. Dengan menggunakan Storage API (storage.sync), data pengguna dapat disinkronkan secara otomatis dengan sinkronisasi Chrome.

Pembersihan sebelum aplikasi ditutup

Runtime aplikasi mengirimkan peristiwa onSuspend() ke halaman peristiwa sebelum menghapus muatannya. Halaman acara Anda dapat memproses peristiwa ini dan melakukan tugas pembersihan serta menyimpan status sebelum aplikasi ditutup.

Setelah peristiwa ini diaktifkan, runtime aplikasi akan memulai proses penutupan aplikasi. Jika aplikasi telah membuka Windows dapat dimulai ulang di lain waktu melalui peristiwa onRestarted. Dalam hal ini, aplikasi harus menyimpan statusnya saat ini ke penyimpanan persisten sehingga dapat dimulai ulang dalam status yang sama jika menerima Peristiwa onRestarted. Aplikasi hanya memiliki waktu beberapa detik untuk menyimpan statusnya, setelah itu akan dihentikan, jadi sebaiknya simpan status aplikasi secara bertahap saat aplikasi sedang berjalan seperti biasanya.

Setelah menerima onSuspend, tidak ada peristiwa lebih lanjut yang akan dikirim ke aplikasi, kecuali jika penangguhannya dibatalkan karena beberapa alasan. Dalam hal ini, onSuspendCanceled akan dikirim ke aplikasi, dan aplikasi tidak akan dibongkar.

chrome.runtime.onSuspend.addListener(function() {
  // Do some simple clean-up tasks.
});