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

โปรแกรมทำงานของบริการส่วนขยายจะมีการติดตั้งและอัปเดตต่างออกไปจาก Web Service Worker หน้านี้จะอธิบายถึงความแตกต่างเหล่านั้น

ลงทะเบียน Service Worker

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

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

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

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

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

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

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

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

ใช้ importScripts() แบบเดียวกับที่ใช้ใน Web Service Worker

importScripts('locales.js');

อัปเดต

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