Uzantı hizmeti çalışanları, web hizmeti ç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
Uzantı hizmet çalışanını kaydetmek için manifest.json
dosyasının "background"
alanında belirtin. Tek bir JavaScript dosyası belirten "service_worker"
anahtarını kullanın. Web sayfalarındaki veya web uygulamalarındaki hizmet çalışanları, ilk olarak navigator
içindeki serviceWorker
için özellik tespit edip ardından özellik algılamanın içinde register()
çağırarak hizmet çalışanlarını kaydeder. Bu özellik uzantılarda işe yaramaz.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Komut dosyalarını içe aktar
Komut dosyalarını bir hizmet çalışanına aktarmanın iki yöntemi vardır: import
ifadesi ve importScripts()
yöntemi. Genellikle dinamik içe aktarma olarak adlandırılan import()
işleminin desteklenmediğini unutmayın.
import
ifadesini kullanmak için manifest dosyanıza "type"
alanını ekleyin ve "module"
ifadesini belirtin. Örneğin:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Ardından import
uygulamasını normal şekilde kullanın. İçe aktarma onaylarının desteklenmediğini unutmayın.
import { tldLocales } from './locales.js';
importScripts()
politikasını bir web hizmeti çalışanının yaptığı gibi kullanın.
importScripts('locales.js');
Güncelle
Hizmet çalışanını güncellemek için Chrome Web Mağazası'nda uzantınızın yeni bir sürümünü yayınlayın. Uzantınızı bir sunucudan yükleyerek bu sorunu gideremezsiniz. 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.