Service worker ekstensi diinstal dan diupdate secara berbeda dari service worker web. Halaman ini menjelaskan perbedaan tersebut.
Mendaftarkan pekerja layanan
Untuk mendaftarkan pekerja layanan ekstensi, tentukan di kolom "background"
file manifest.json
. Gunakan kunci "service_worker"
, yang menentukan satu file JavaScript. Service worker di halaman web atau aplikasi web mendaftarkan service worker dengan mendeteksi fitur serviceWorker
di navigator
terlebih dahulu, lalu memanggil register()
di dalam deteksi fitur. Fungsi ini tidak berfungsi untuk ekstensi.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Mengimpor skrip
Ada dua metode untuk mengimpor skrip ke pekerja layanan: pernyataan import
dan metode importScripts()
. Perhatikan bahwa import()
, yang sering disebut impor dinamis, tidak didukung.
Untuk menggunakan pernyataan import
, tambahkan kolom "type"
ke manifes Anda dan tentukan "module"
. Contoh:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Kemudian, gunakan import
seperti biasa. Perhatikan bahwa pernyataan impor tidak didukung.
import { tldLocales } from './locales.js';
Gunakan importScripts()
seperti yang Anda lakukan di pekerja layanan web.
importScripts('locales.js');
Perbarui
Untuk mengupdate pekerja layanan, publikasikan versi baru ekstensi Anda ke Chrome Web Store. Anda tidak dapat mengatasinya dengan memuat ekstensi dari server. Karena alasan keamanan, Manifes V3 tidak mendukung kode yang dihosting dari jarak jauh. Pekerja layanan Anda harus menjadi bagian dari paket ekstensi.