Uzantı hizmet çalışanları, web hizmet çalışanlarından farklı şekilde yüklenir ve güncellenir. Bu sayfada söz konusu farklılıklar açıklanmaktadır.
Hizmet çalışanlarını kaydetme
Bir uzantı hizmet işçisini kaydetmek için manifest.json
dosyasının "background"
alanında belirtin. Tek bir JavaScript dosyasını belirten "service_worker"
anahtarını kullanın. Web sayfalarındaki veya web uygulamalarındaki hizmet işçileri, önce navigator
içinde serviceWorker
için özellik algılayarak, ardından özellik algılama içinde register()
'yi çağırarak hizmet işçilerini kaydeder. Bu işlem uzantılarda çalışmaz.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Komut dosyalarını içe aktarma
Komut dosyalarını bir servis çalışanına içe aktarmanın iki yöntemi vardır: import
ifadesi ve importScripts()
yöntemi. Genellikle dinamik içe aktarma olarak adlandırılan import()
işlevinin desteklenmediğini unutmayın.
import
ifadesini kullanmak için manifest dosyanıza "type"
alanını ekleyin ve "module"
değerini belirtin. Örneğin:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Ardından import
'ü normal şekilde kullanın. İçe aktarma beyanlarının desteklenmediğini unutmayın.
import { tldLocales } from './locales.js';
importScripts()
değerini bir web hizmeti işleyicisinde kullanacağınız gibi kullanın.
importScripts('locales.js');
Güncelle
Hizmet çalışanını güncellemek için uzantınızın yeni bir sürümünü Chrome Web Mağazası'nda yayınlayın. Eklentinizi bir sunucudan yükleyerek bu sorunu atlayamazsınız. Manifest V3, güvenlik nedeniyle uzaktan barındırılan kodu desteklemez. Hizmet çalışanınız, uzantı paketinin bir parçası olmalıdır.