Runtime aplikasi dan halaman peristiwa bertanggung jawab untuk mengelola siklus proses aplikasi. Runtime aplikasi mengelola penginstalan aplikasi, mengontrol halaman acara, dan dapat menonaktifkan aplikasi kapan saja. Halaman peristiwa memproses peristiwa dari runtime aplikasi dan mengelola apa yang diluncurkan dan caranya.
Cara kerja siklus proses
Runtime aplikasi memuat halaman peristiwa dari desktop pengguna dan peristiwa onLaunch()
diaktifkan. Peristiwa
ini memberi tahu halaman peristiwa jendela yang akan diluncurkan dan dimensinya.
Jika halaman peristiwa tidak memiliki JavaScript yang dieksekusi, tidak ada callback yang tertunda, dan tidak ada jendela yang terbuka, runtime akan menghapus muatan halaman peristiwa dan menutup aplikasi. Sebelum menghapus muatan halaman peristiwa, peristiwa onSuspend()
akan diaktifkan. Hal ini memberi halaman peristiwa 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 aplikasi tanpa UI-nya sendiri dan bertanggung jawab untuk membuat jendela untuk semua halaman aplikasi lainnya.
Membuat halaman acara
Untuk membuat halaman peristiwa, sertakan kolom "background" dalam manifes aplikasi dan sertakan
background.js
dalam array skrip. Setiap skrip library yang digunakan oleh halaman peristiwa harus ditambahkan ke kolom "background" terlebih dahulu:
"background": {
"scripts": [
"foo.js",
"background.js"
]
}
Halaman peristiwa 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 peristiwa dapat membuat satu atau beberapa jendela sesuai kebijaksanaannya. Secara default, jendela ini dibuat dengan koneksi skrip ke halaman peristiwa dan dapat langsung dibuat skripnya oleh halaman peristiwa.
Jendela di Aplikasi Chrome tidak dikaitkan dengan jendela browser Chrome apa pun. Jendela ini memiliki bingkai opsional dengan kontrol ukuran dan panel judul, serta ID jendela yang direkomendasikan. Jendela tanpa ID tidak akan dipulihkan ke 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 peristiwa. Secara
default, tidak ada data peluncuran saat aplikasi dimulai oleh peluncur aplikasi. Untuk aplikasi yang memiliki
pengendali file, Anda harus menangani parameter launchData.items
agar dapat diluncurkan dengan
file.
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 dapat memproses peristiwa onInstalled()
untuk menyimpan
setelan lokal dan peristiwa onSuspend()
untuk melakukan tugas pembersihan sederhana sebelum halaman peristiwa
di-unload.
Menyimpan setelan lokal
chrome.runtime.onInstalled()
dipanggil saat aplikasi Anda pertama kali diinstal, atau saat telah
diupdate. Setiap kali fungsi ini dipanggil, peristiwa onInstalled
akan diaktifkan. Halaman peristiwa 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 yang tertinggal. Hal ini dapat menyebabkan hilangnya data karena pengguna mungkin meng-uninstal aplikasi yang memiliki data yang tidak disinkronkan dan diedit secara lokal. 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 peristiwa Anda
dapat memproses peristiwa ini, melakukan tugas pembersihan, dan menyimpan status sebelum aplikasi ditutup.
Setelah peristiwa ini diaktifkan, runtime aplikasi akan memulai proses penutupan aplikasi. Jika aplikasi memiliki jendela
terbuka, aplikasi tersebut dapat dimulai ulang pada masa mendatang 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 aplikasi akan
dihentikan, jadi sebaiknya simpan status aplikasi secara bertahap saat aplikasi berjalan
secara normal.
Setelah menerima onSuspend
, tidak ada peristiwa lebih lanjut yang akan dikirim ke aplikasi, kecuali jika penangguhan
dibatalkan karena alasan tertentu. Dalam hal ini, onSuspendCanceled
akan dikirim ke aplikasi, dan
aplikasi tidak akan di-unload.
chrome.runtime.onSuspend.addListener(function() {
// Do some simple clean-up tasks.
});