ข้อมูลเบื้องต้นเกี่ยวกับ Service Worker ส่วนขยาย

Service Worker ของส่วนขยายจะติดตั้งและอัปเดตแตกต่างจาก Service Worker ของเว็บ หน้านี้จะอธิบายความแตกต่างเหล่านั้น

ลงทะเบียน Service Worker

หากต้องการลงทะเบียนผู้ให้บริการของส่วนขยาย ให้ระบุในช่อง "background" ของไฟล์ manifest.json ใช้คีย์ "service_worker" ซึ่งระบุไฟล์ JavaScript ไฟล์เดียว บริการเวิร์กเกอร์ในหน้าเว็บหรือเว็บแอปจะลงทะเบียนบริการเวิร์กเกอร์โดยการตรวจหาฟีเจอร์ serviceWorker ใน navigator ก่อน จากนั้นจึงเรียกใช้ register() ภายในการตรวจหาฟีเจอร์ แต่จะใช้ไม่ได้กับส่วนขยาย

{
  "name": "Awesome Test Extension",
  ...
  "background": {
    "service_worker": "service-worker.js"
  },
  ...
}

นำเข้าสคริปต์

การนําเข้าสคริปต์ไปยัง Service Worker ทําได้ 2 วิธี ได้แก่ คำสั่ง import และเมธอด importScripts() โปรดทราบว่าระบบไม่รองรับ import() ซึ่งมักเรียกว่าการนําเข้าแบบไดนามิก

หากต้องการใช้คำสั่ง import ให้เพิ่มช่อง "type" ลงในไฟล์ Manifest และระบุ "module" เช่น

  "background": {
    "service_worker": "service-worker.js",
    "type": "module"
  }

จากนั้นใช้ import ตามปกติ โปรดทราบว่าระบบไม่รองรับการยืนยันการนําเข้า

import { tldLocales } from './locales.js';

ใช้ importScripts() เช่นเดียวกับในเวิร์กเกอร์ของเว็บเซอร์วิส

importScripts('locales.js');

อัปเดต

หากต้องการอัปเดต Service Worker ให้เผยแพร่ส่วนขยายเวอร์ชันใหม่ใน Chrome เว็บสโตร์ คุณไม่สามารถหลีกเลี่ยงปัญหานี้ด้วยการโหลดส่วนขยายจากเซิร์ฟเวอร์ Manifest V3 ไม่รองรับโค้ดที่โฮสต์จากระยะไกลเนื่องด้วยเหตุผลด้านความปลอดภัย Service Worker ของคุณต้องเป็นส่วนหนึ่งของแพ็กเกจส่วนขยาย