chrome.runtime

คำอธิบาย

ใช้ chrome.runtime API เพื่อดึงข้อมูล Service Worker, แสดงรายละเอียดเกี่ยวกับไฟล์ Manifest และคอยฟังและตอบสนองต่อเหตุการณ์ในวงจรชีวิตของส่วนขยาย คุณยังสามารถใช้ API นี้เพื่อแปลงเส้นทางที่เกี่ยวข้องของ URL เป็น URL ที่สมบูรณ์ในตัวเอง

ภาพรวม

Runtime API มีเมธอดที่รองรับฟังก์ชันการทำงานในหลายๆ ด้านที่ส่วนขยายของคุณใช้ได้ ดังนี้

การส่งข้อความ
ส่วนขยายสามารถสื่อสารกับบริบทต่างๆ ภายในส่วนขยายและกับส่วนขยายอื่นๆ โดยใช้เมธอดและเหตุการณ์เหล่านี้ connect(), onConnect, onConnectExternal, sendMessage(), onMessage และ onMessageExternal นอกจากนี้ ส่วนขยายยังส่งข้อความไปยังแอปพลิเคชันเนทีฟในอุปกรณ์ของผู้ใช้ได้ด้วย โดยใช้ connectNative() และ sendNativeMessage()
การเข้าถึงข้อมูลเมตาของส่วนขยายและแพลตฟอร์ม
วิธีการเหล่านี้ช่วยให้คุณเรียกข้อมูลเมตาที่เฉพาะเจาะจงหลายรายการเกี่ยวกับส่วนขยายและแพลตฟอร์มได้ เมธอดในหมวดหมู่นี้ ได้แก่ getManifest() และ getPlatformInfo()
การจัดการวงจรและตัวเลือกส่วนขยาย
พร็อพเพอร์ตี้เหล่านี้ให้คุณดำเนินการบางอย่างกับส่วนขยายและแสดงหน้าตัวเลือกได้ เมธอดและเหตุการณ์ในหมวดหมู่นี้ ได้แก่ onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck() และ setUninstallURL()
ยูทิลิตีของตัวช่วย
เมธอดเหล่านี้มีประโยชน์ เช่น การแปลงการแสดงทรัพยากรภายในเป็นรูปแบบภายนอก เมธอดในหมวดหมู่นี้ ได้แก่ getURL()
ยูทิลิตีโหมดคีออสก์
วิธีการเหล่านี้ใช้ได้ใน ChromeOS เท่านั้น และมีไว้เพื่อรองรับการใช้งานคีออสก์เป็นหลัก วิธีการในหมวดหมู่นี้ ได้แก่ restart และ restartAfterDelay

สิทธิ์

เมธอดส่วนใหญ่ใน Runtime API จะไม่ต้องการสิทธิ์ใดๆ ยกเว้น sendNativeMessage และ connectNative ซึ่ง ต้องมีสิทธิ์ nativeMessaging

ไฟล์ Manifest

ตัวอย่างต่อไปนี้แสดงวิธีประกาศสิทธิ์ nativeMessaging ในไฟล์ Manifest

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

กรณีการใช้งาน

เพิ่มรูปภาพลงในหน้าเว็บ

หากต้องการให้หน้าเว็บเข้าถึงชิ้นงานที่โฮสต์ในโดเมนอื่น หน้าเว็บจะต้องระบุ URL แบบเต็มของทรัพยากร (เช่น <img src="https://example.com/logo.png">) เช่นเดียวกับการรวมชิ้นงานส่วนขยายในหน้าเว็บ ความแตกต่าง 2 อย่างคือชิ้นงานส่วนขยายต้องแสดงเป็นทรัพยากรที่เข้าถึงได้ทางเว็บ และโดยทั่วไปแล้วสคริปต์เนื้อหามีหน้าที่รับผิดชอบในการแทรกชิ้นงานส่วนขยาย

ในตัวอย่างนี้ ส่วนขยายจะเพิ่ม logo.png ลงในหน้าที่แทรก สคริปต์เนื้อหาโดยใช้ runtime.getURL() เพื่อสร้าง URL ที่สมบูรณ์ แต่ก่อนอื่น คุณต้องประกาศชิ้นงานเป็นทรัพยากรที่เข้าถึงได้ทางเว็บในไฟล์ Manifest

manifest.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

content.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}

ส่งข้อมูลจาก Service Worker ไปยังสคริปต์เนื้อหา

เป็นเรื่องปกติที่สคริปต์เนื้อหาของเทมเพลตจะต้องการข้อมูลที่จัดการโดยส่วนอื่นของเทมเพลต เช่น Service Worker บริบททั้ง 2 รายการนี้ไม่สามารถเข้าถึงค่าของกันและกันได้โดยตรง เช่นเดียวกับหน้าต่างเบราว์เซอร์ 2 หน้าต่างที่เปิดหน้าเว็บเดียวกัน แต่จะใช้การส่งข้อความเพื่อประสานงานในบริบทต่างๆ เหล่านี้แทน

ในตัวอย่างนี้ สคริปต์เนื้อหาต้องการข้อมูลจาก Service Worker ของส่วนขยายเพื่อเริ่มต้น UI หากต้องการรับข้อมูลนี้ ระบบจะส่งผ่านทางข้อความ get-user-data ไปยัง Service Worker และ แอปตอบสนองด้วยสำเนาข้อมูลของผู้ใช้

content.js:

// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

background.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

รวบรวมความคิดเห็นเกี่ยวกับการถอนการติดตั้ง

ส่วนขยายจำนวนมากใช้แบบสำรวจหลังถอนการติดตั้งเพื่อทำความเข้าใจว่าส่วนขยายนั้นจะให้บริการได้ดีขึ้นอย่างไร ผู้ใช้และปรับปรุงการคงผู้ใช้ไว้ ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มฟังก์ชันการทำงานนี้

background.js:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

ตัวอย่างส่วนขยาย

ดูตัวอย่างเพิ่มเติมเกี่ยวกับ Runtime API ได้ในไฟล์ Manifest V3 - การสาธิตทรัพยากรที่เข้าถึงได้บนเว็บ

ประเภท

ContextFilter

Chrome 114 ขึ้นไป

ตัวกรองที่จับคู่กับบริบทส่วนขยายบางรายการ บริบทที่ตรงกันต้องตรงกับตัวกรองที่ระบุทั้งหมด ตัวกรองที่ไม่ได้ระบุจะตรงกับบริบทที่มีอยู่ทั้งหมด ดังนั้นตัวกรอง "{}" จะตรงกับบริบททั้งหมดที่มีอยู่

พร็อพเพอร์ตี้

  • contextIds

    string[] ไม่บังคับ

  • contextTypes

    ContextType[] ไม่บังคับ

  • documentIds

    string[] ไม่บังคับ

  • documentOrigins

    string[] ไม่บังคับ

  • documentUrls

    string[] ไม่บังคับ

  • frameIds

    number[] ไม่บังคับ

  • ไม่ระบุตัวตน

    บูลีน ไม่บังคับ

  • tabIds

    number[] ไม่บังคับ

  • windowIds

    number[] ไม่บังคับ

ContextType

Chrome 114 ขึ้นไป

ค่าแจกแจง

"TAB"
ระบุประเภทบริบทเป็นแท็บ

"POPUP"
ระบุประเภทบริบทเป็นหน้าต่างป๊อปอัปของส่วนขยาย

"BACKGROUND"
ระบุประเภทบริบทเป็น Service Worker

"OFFSCREEN_DOCUMENT"
ระบุประเภทบริบทเป็นเอกสารที่อยู่นอกหน้าจอ

"SIDE_PANEL"
ระบุประเภทบริบทเป็นแผงด้านข้าง

"DEVELOPER_TOOLS"
ระบุประเภทบริบทเป็นเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

ExtensionContext

Chrome 114 ขึ้นไป

บริบทที่โฮสต์เนื้อหาส่วนขยาย

พร็อพเพอร์ตี้

  • contextId

    สตริง

    ตัวระบุที่ไม่ซ้ำกันสำหรับบริบทนี้

  • contextType

    ประเภทของบริบทที่เกี่ยวข้อง

  • documentId

    สตริง ไม่บังคับ

    UUID ของเอกสารที่เชื่อมโยงกับบริบทนี้ หรือ "ไม่ระบุ" หากบริบทนี้ไม่ได้โฮสต์ในเอกสาร

  • documentOrigin

    string ไม่บังคับ

    ต้นทางของเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ระบุหากบริบทไม่ได้โฮสต์อยู่ในเอกสาร

  • documentUrl

    string ไม่บังคับ

    URL ของเอกสารที่เกี่ยวข้องกับบริบทนี้ หรือไม่ระบุหากบริบทไม่ได้โฮสต์อยู่ในเอกสาร

  • frameId

    ตัวเลข

    รหัสของเฟรมสําหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในเฟรม

  • ไม่ระบุตัวตน

    boolean

    บริบทเชื่อมโยงกับโปรไฟล์ที่ไม่ระบุตัวตนหรือไม่

  • tabId

    ตัวเลข

    รหัสของแท็บสําหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในแท็บ

  • windowId

    ตัวเลข

    รหัสของหน้าต่างสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในหน้าต่าง

MessageSender

ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับบริบทสคริปต์ที่ส่งข้อความหรือคําขอ

พร็อพเพอร์ตี้

  • documentId

    สตริง ไม่บังคับ

    Chrome 106 ขึ้นไป

    UUID ของเอกสารที่เปิดการเชื่อมต่อ

  • documentLifecycle

    สตริง ไม่บังคับ

    Chrome 106 ขึ้นไป

    วงจรชีวิตของเอกสารที่เปิดการเชื่อมต่ออยู่ในขณะที่สร้างพอร์ต โปรดทราบว่าสถานะวงจรชีวิตของเอกสารอาจเปลี่ยนแปลงไปนับตั้งแต่การสร้างพอร์ต

  • frameId

    ตัวเลข ไม่บังคับ

    เฟรมที่เปิดการเชื่อมต่อ 0 สำหรับเฟรมระดับบนสุด บวกสำหรับเฟรมย่อย การตั้งค่านี้จะตั้งค่าเมื่อตั้งค่า tab เท่านั้น

  • id

    สตริง ไม่บังคับ

    รหัสของส่วนขยายที่เปิดการเชื่อมต่อ (หากมี)

  • nativeApplication

    สตริง ไม่บังคับ

    Chrome 74 ขึ้นไป

    ชื่อแอปพลิเคชันของระบบที่ใช้เปิดการเชื่อมต่อ (หากมี)

  • origin

    สตริง ไม่บังคับ

    Chrome 80 ขึ้นไป

    ต้นทางของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ ซึ่งอาจแตกต่างจากพร็อพเพอร์ตี้ URL (เช่น about:blank) หรืออาจทึบ (เช่น iframe ในแซนด์บ็อกซ์) ซึ่งมีประโยชน์ในการระบุว่าต้นทางเชื่อถือได้หรือไม่ หากเราไม่สามารถบอกจาก URL ได้ทันที

  • แท็บ

    Tab ไม่บังคับ

    tabs.Tab ที่เปิดการเชื่อมต่อ (หากมี) พร็อพเพอร์ตี้นี้จะปรากฏเฉพาะเมื่อเปิดการเชื่อมต่อจากแท็บ (รวมถึงสคริปต์เนื้อหา) และเฉพาะในกรณีที่ผู้รับเป็นส่วนขยาย ไม่ใช่แอป

  • tlsChannelId

    สตริง ไม่บังคับ

    รหัสช่องทาง TLS ของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ หากส่วนขยายขอและหากมี

  • URL

    string ไม่บังคับ

    URL ของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ หากผู้ส่งอยู่ใน iframe จะเป็น URL ของ iframe ไม่ใช่ URL ของหน้าเว็บที่โฮสต์ iframe

OnInstalledReason

Chrome 44 ขึ้นไป

เหตุผลที่ส่งเหตุการณ์นี้

ค่าแจกแจง

"install"
ระบุเหตุผลของเหตุการณ์เป็นการติดตั้ง

"update"
ระบุสาเหตุของเหตุการณ์เป็นการอัปเดตส่วนขยาย

"chrome_update"
ระบุสาเหตุของเหตุการณ์เป็นการอัปเดต Chrome

"shared_module_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตข้อบังคับที่ใช้ร่วมกัน

OnRestartRequiredReason

Chrome 44 ขึ้นไป

เหตุผลที่ส่งเหตุการณ์ "app_update" ใช้เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากแอปพลิเคชันได้รับการอัปเดตเป็นเวอร์ชันใหม่ ระบบจะใช้ "os_update" เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากเบราว์เซอร์/ระบบปฏิบัติการได้รับการอัปเดตเป็นเวอร์ชันใหม่ ระบบจะใช้ "เป็นระยะ" เมื่อระบบทำงานนานกว่าเวลาทำงานที่อนุญาตซึ่งกำหนดไว้ในนโยบายขององค์กร

ค่าแจกแจง

"app_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตแอป

"os_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตระบบปฏิบัติการ

"periodic"
ระบุเหตุผลที่เกิดเหตุการณ์เป็นการรีสตาร์ทแอปเป็นระยะๆ

PlatformArch

Chrome 44 ขึ้นไป

สถาปัตยกรรมโปรเซสเซอร์ของเครื่อง

ค่าแจกแจง

"arm"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น arm

"arm64"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น arm64

"x86-32"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น x86-32

"x86-64"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น x86-64

"mips"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น mips

"mips64"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น mips64

PlatformInfo

ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน

พร็อพเพอร์ตี้

  • โค้ง

    สถาปัตยกรรมของหน่วยประมวลผลของคอมพิวเตอร์

  • nacl_arch

    สถาปัตยกรรมไคลเอ็นต์ในระบบ ซึ่งอาจแตกต่างจาก arch ในบางแพลตฟอร์ม

  • ระบบปฏิบัติการที่ Chrome ทำงานอยู่

PlatformNaclArch

Chrome 44 ขึ้นไป

สถาปัตยกรรมเนทีฟของไคลเอ็นต์ ซึ่งอาจแตกต่างจาก arch ในบางแพลตฟอร์ม

ค่าแจกแจง

"arm"
ระบุสถาปัตยกรรมไคลเอ็นต์เนทีฟเป็น arm

"x86-32"
ระบุสถาปัตยกรรมไคลเอ็นต์เนทีฟเป็น x86-32

"x86-64"
ระบุสถาปัตยกรรมไคลเอ็นต์เนทีฟเป็น x86-64

"mips"
ระบุสถาปัตยกรรมไคลเอ็นต์เนทีฟเป็น mips

"mips64"
ระบุสถาปัตยกรรมเนทีฟของไคลเอ็นต์เป็น mips64

PlatformOs

Chrome 44 ขึ้นไป

ระบบปฏิบัติการที่ Chrome ทำงานอยู่

ค่าแจกแจง

"mac"
ระบุระบบปฏิบัติการ MacOS

"win"
ระบุระบบปฏิบัติการ Windows

"android"
ระบุระบบปฏิบัติการ Android

"cros"
ระบุระบบปฏิบัติการ Chrome

"linux"
ระบุระบบปฏิบัติการ Linux

"openbsd"
ระบุระบบปฏิบัติการ OpenBSD

"fuchsia"
ระบุระบบปฏิบัติการ Fuchsia

Port

ออบเจ็กต์ที่ช่วยให้มีการสื่อสารแบบ 2 ทางกับหน้าอื่นๆ ดูข้อมูลเพิ่มเติมได้ที่การเชื่อมต่อแบบคงที่

พร็อพเพอร์ตี้

  • ชื่อ

    สตริง

    ชื่อพอร์ตตามที่ระบุไว้ในคําเรียก runtime.connect

  • onDisconnect

    Event<functionvoidvoid>

    เริ่มทำงานเมื่อถอดพอร์ตออกจากปลายสายอีกด้านหนึ่ง ระบบอาจตั้งค่า runtime.lastError หากพอร์ตถูกตัดการเชื่อมต่อเนื่องจากเกิดข้อผิดพลาด หากพอร์ตปิดด้วยยกเลิกการเชื่อมต่อ เหตุการณ์นี้จะเริ่มทำงานเท่านั้นที่ฝั่งอีกฝั่งหนึ่ง ระบบจะเรียกเหตุการณ์นี้ไม่เกิน 1 ครั้ง (ดูอายุการใช้งานพอร์ตด้วย)

    ฟังก์ชัน onDisconnect.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • Callback

      ฟังก์ชัน

      พารามิเตอร์ callback จะมีลักษณะดังนี้

      (port: Port) => void

  • onMessage

    เหตุการณ์<functionvoid>

    เหตุการณ์นี้จะเริ่มต้นขึ้นเมื่อปลายอีกด้านของพอร์ตเรียกใช้ postMessage

    ฟังก์ชัน onMessage.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • Callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      (message: any, port: Port) => void

  • ผู้ส่ง

    MessageSender ไม่บังคับ

    พร็อพเพอร์ตี้นี้จะแสดงเฉพาะในพอร์ตที่ส่งผ่านไปยัง Listener onConnect / onConnectExternal / onConnectNative

  • ยกเลิกการเชื่อมต่อ

    โมฆะ

    ยกเลิกการเชื่อมต่อพอร์ตทันที การเรียกใช้ disconnect() บนพอร์ตที่ไม่ได้เชื่อมต่ออยู่แล้วจะไม่มีผลใดๆ เมื่อพอร์ตถูกตัดการเชื่อมต่อ ระบบจะไม่ส่งเหตุการณ์ใหม่ไปยังพอร์ตนี้

    ฟังก์ชัน disconnect มีรูปแบบดังนี้

    () => {...}

  • postMessage

    เป็นโมฆะ

    ส่งข้อความไปยังปลายอีกด้านของพอร์ต หากพอร์ตถูกตัดการเชื่อมต่อ จะเกิดข้อผิดพลาด

    ฟังก์ชัน postMessage มีลักษณะดังนี้

    (message: any) => {...}

    • ข้อความ

      ใดๆ

      Chrome 52 ขึ้นไป

      ข้อความที่จะส่ง ออบเจ็กต์นี้ควรอยู่ในรูปแบบ JSON ได้

RequestUpdateCheckStatus

Chrome 44 ขึ้นไป

ผลการตรวจสอบการอัปเดต

ค่าแจกแจง

"throttled"
ระบุว่าการตรวจสอบสถานะมีการควบคุม ซึ่งอาจเกิดขึ้นหลังจากการตรวจสอบซ้ำๆ ภายในระยะเวลาสั้นๆ

"no_update"
ระบุว่าไม่มีอัปเดตที่พร้อมให้ติดตั้ง

"update_available"
ระบุว่ามีอัปเดตพร้อมให้ติดตั้ง

พร็อพเพอร์ตี้

id

รหัสของส่วนขยาย/แอป

ประเภท

สตริง

lastError

จะป้อนข้อมูลพร้อมกับข้อความแสดงข้อผิดพลาดหากเรียกใช้ฟังก์ชัน API ไม่สำเร็จ ไม่ระบุ ซึ่งจะกำหนดได้ภายในขอบเขตของ Callback ของฟังก์ชันนั้นเท่านั้น หากเกิดข้อผิดพลาดขึ้น แต่ไม่สามารถเข้าถึง runtime.lastError ภายใน Callback ข้อความจะได้รับการบันทึกไปยังคอนโซลพร้อมแสดงรายการฟังก์ชัน API ที่ทำให้เกิดข้อผิดพลาด ฟังก์ชัน API ที่แสดงผลพรอมิสจะไม่ตั้งค่าพร็อพเพอร์ตี้นี้

ประเภท

ออบเจ็กต์

พร็อพเพอร์ตี้

  • ข้อความ

    string ไม่บังคับ

    รายละเอียดเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น

เมธอด

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)

พยายามเชื่อมต่อผู้ฟังภายในส่วนขยาย (เช่น หน้าเบื้องหลัง) หรือส่วนขยาย/แอปอื่นๆ ซึ่งมีประโยชน์สำหรับสคริปต์เนื้อหาที่เชื่อมต่อกับกระบวนการของส่วนขยาย การสื่อสารระหว่างแอป/ส่วนขยาย และการรับส่งข้อความบนเว็บ โปรดทราบว่าการดำเนินการนี้ไม่ได้เชื่อมต่อกับ Listener ใดๆ ในสคริปต์เนื้อหา ส่วนขยายอาจเชื่อมต่อกับสคริปต์เนื้อหาที่ฝังอยู่ในแท็บผ่าน tabs.connect

พารามิเตอร์

  • extensionId

    string ไม่บังคับ

    รหัสของส่วนขยายที่จะเชื่อมต่อ หากไม่ระบุ ระบบจะลองเชื่อมต่อกับส่วนขยายของคุณเอง ต้องระบุหากส่งข้อความจากหน้าเว็บสําหรับการรับส่งข้อความบนเว็บ

  • connectInfo

    ออบเจ็กต์ไม่บังคับ

    • includeTlsChannelId

      บูลีน ไม่บังคับ

      ระบบจะส่งรหัสช่องทาง TLS ไปยัง onConnectExternal สำหรับกระบวนการที่รอเหตุการณ์การเชื่อมต่อหรือไม่

    • ชื่อ

      string ไม่บังคับ

      ระบบจะส่งผ่านไปยัง onConnect สำหรับกระบวนการที่รอเหตุการณ์การเชื่อมต่อ

การคืนสินค้า

  • พอร์ตที่ใช้รับส่งข้อความได้ ระบบจะเรียกเหตุการณ์ onDisconnect ของพอร์ตหากไม่มีส่วนขยาย

connectNative()

chrome.runtime.connectNative(
  application: string,
)

เชื่อมต่อกับแอปพลิเคชันที่มาพร้อมเครื่องในเครื่องโฮสต์ วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging" ดูข้อมูลเพิ่มเติมได้ที่การรับส่งข้อความในแอป

พารามิเตอร์

  • แอปพลิเคชัน

    สตริง

    ชื่อแอปพลิเคชันที่ลงทะเบียนที่ต้องการเชื่อมต่อ

การคืนสินค้า

  • พอร์ตที่ใช้รับส่งข้อความด้วยแอปพลิเคชันได้

getBackgroundPage()

สัญญา เบื้องหน้าเท่านั้น
chrome.runtime.getBackgroundPage(
  callback?: function,
)

ดึงข้อมูลออบเจ็กต์ "window" ของ JavaScript สําหรับหน้าเบื้องหลังที่ทํางานภายในส่วนขยาย/แอปปัจจุบัน หากหน้าเบื้องหลังเป็นหน้าเหตุการณ์ ระบบจะตรวจสอบว่าได้โหลดหน้าดังกล่าวแล้วก่อนที่จะเรียก Callback หากไม่มีหน้าเบื้องหลัง ระบบจะตั้งค่าข้อผิดพลาด

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (backgroundPage?: Window) => void

    • backgroundPage

      กรอบเวลา ไม่บังคับ

      "หน้าต่าง" JavaScript สำหรับหน้าพื้นหลัง

การคืนสินค้า

  • Promise<Window | undefined>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getContexts()

Promise Chrome 116 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

ดึงข้อมูลเกี่ยวกับบริบทที่ใช้งานอยู่ซึ่งเชื่อมโยงกับส่วนขยายนี้

พารามิเตอร์

  • ตัวกรอง

    ตัวกรองสำหรับค้นหาบริบทที่ตรงกัน บริบทจะจับคู่หากตรงกับช่องที่ระบุในตัวกรองทั้งหมด ฟิลด์ที่ไม่ได้ระบุในตัวกรองจะตรงกับบริบททั้งหมด

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (contexts: ExtensionContext[]) => void

    • บริบท

      บริบทที่ตรงกัน (หากมี)

การคืนสินค้า

  • Promise<ExtensionContext[]>

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getManifest()

chrome.runtime.getManifest()

แสดงรายละเอียดเกี่ยวกับแอปหรือส่วนขยายจากไฟล์ Manifest ออบเจ็กต์ที่แสดงผลคือการจัดรูปแบบ ไฟล์ Manifest ทั้งหมด

การคืนสินค้า

  • ออบเจ็กต์

    รายละเอียดของไฟล์ Manifest

getPackageDirectoryEntry()

สัญญา เบื้องหน้าเท่านั้น
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

แสดงผล DirectoryEntry สำหรับไดเรกทอรีแพ็กเกจ

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

การคืนสินค้า

  • สัญญาว่า<DirectoryEntry>

    Chrome 122 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getPlatformInfo()

สัญญา
chrome.runtime.getPlatformInfo(
  callback?: function,
)

แสดงข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (platformInfo: PlatformInfo) => void

การคืนสินค้า

  • สัญญา<PlatformInfo>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getURL()

chrome.runtime.getURL(
  path: string,
)

แปลงเส้นทางแบบสัมพัทธ์ภายในไดเรกทอรีการติดตั้งแอป/ส่วนขยายเป็น URL ที่สมบูรณ์ในตัวเอง

พารามิเตอร์

  • เส้นทาง

    สตริง

    เส้นทางไปยังทรัพยากรภายในแอป/ส่วนขยายที่แสดงตามไดเรกทอรีการติดตั้ง

การคืนสินค้า

  • สตริง

    URL ที่สมบูรณ์ในตัวเองไปยังทรัพยากร

openOptionsPage()

สัญญา
chrome.runtime.openOptionsPage(
  callback?: function,
)

เปิดหน้าตัวเลือกของส่วนขยาย หากเป็นไปได้

ลักษณะการทำงานที่แน่นอนอาจขึ้นอยู่กับคีย์ [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) หรือ [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) ของไฟล์ Manifest ของคุณหรือสิ่งที่ Chrome จะรองรับในเวลานั้น เช่น หน้าเว็บอาจเปิดในแท็บใหม่ ภายใน chrome://extensions ภายในแอป หรืออาจโฟกัสหน้าตัวเลือกที่เปิดอยู่ จะไม่ทําให้หน้าผู้เรียกโหลดซ้ำ

หากส่วนขยายไม่ประกาศหน้าตัวเลือก หรือ Chrome สร้างหน้าตัวเลือกไม่สำเร็จด้วยเหตุผลอื่น การเรียกกลับจะตั้งค่า lastError

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 99 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

reload()

chrome.runtime.reload()

โหลดแอปหรือส่วนขยายซ้ำ โหมดคีออสก์ไม่รองรับวิธีการนี้ สำหรับโหมดคีออสก์ ให้ใช้เมธอด chrome.runtime.restart()

requestUpdateCheck()

สัญญา
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

ขอให้ตรวจสอบการอัปเดตแอป/ส่วนขยายนี้ทันที

สำคัญ: ส่วนขยาย/แอปส่วนใหญ่ควรไม่ใช้วิธีนี้ เนื่องจาก Chrome ทำการตรวจสอบโดยอัตโนมัติทุก 2-3 ชั่วโมงอยู่แล้ว และคุณสามารถรอฟังเหตุการณ์ runtime.onUpdateAvailable ได้โดยไม่ต้องเรียกใช้ requestUpdateCheck

วิธีนี้เหมาะสำหรับการเรียกใช้ในสถานการณ์ที่จำกัดมากๆ เท่านั้น เช่น หากส่วนขยายของคุณสื่อสารกับบริการแบ็กเอนด์ และบริการแบ็กเอนด์ระบุว่าเวอร์ชันส่วนขยายของไคลเอ็นต์ล้าสมัยมาก และคุณต้องการแจ้งให้ผู้ใช้อัปเดต การใช้ requestUpdateCheck ในรูปแบบอื่นๆ ส่วนใหญ่ เช่น การเรียกใช้โดยไม่มีเงื่อนไขตามการจับเวลาซ้ำๆ อาจเป็นเพียงการทำให้ทรัพยากรของไคลเอ็นต์ เครือข่าย และเซิร์ฟเวอร์หมดไปเท่านั้น

หมายเหตุ: เมื่อเรียกใช้ด้วย Callback ฟังก์ชันนี้จะแสดงพร็อพเพอร์ตี้ทั้ง 2 รายการเป็นอาร์กิวเมนต์ที่แยกกันไปยัง Callback แทนที่จะส่งคืนออบเจ็กต์

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: object) => void

    • ผลลัพธ์

      ออบเจ็กต์

      Chrome 109 ขึ้นไป

      ออบเจ็กต์ RequestUpdateCheckResult ที่เก็บสถานะของการตรวจสอบการอัปเดตและรายละเอียดผลลัพธ์หากมีอัปเดต

      • สถานะ

        ผลการตรวจสอบการอัปเดต

      • เวอร์ชัน

        string ไม่บังคับ

        หากมีอัปเดตให้ใช้งาน ข้อความนี้จะแสดงเวอร์ชันของอัปเดตที่มีให้ใช้งาน

การคืนสินค้า

  • Promise<object>

    Chrome เวอร์ชัน 109 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

restart()

chrome.runtime.restart()

รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์ มิเช่นนั้น ก็ไม่มีการใช้งาน

restartAfterDelay()

สัญญา Chrome 53 ขึ้นไป
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์หลังจากผ่านไปตามจำนวนวินาทีที่กำหนด หากเรียกใช้อีกครั้งก่อนเวลาสิ้นสุดลง การรีบูตจะล่าช้า หากเรียกใช้ด้วยค่า -1 ระบบจะยกเลิกการรีบูต แต่จะใช้งานไม่ได้ในโหมดที่ไม่ใช่โหมดคีออสก์ อนุญาตให้เรียกใช้ซ้ำได้เฉพาะโดยส่วนขยายแรกที่เรียกใช้ API นี้

พารามิเตอร์

  • วินาที

    ตัวเลข

    เวลาที่ต้องรอเป็นวินาทีก่อนรีบูตอุปกรณ์ หรือ -1 เพื่อยกเลิกการรีบูตที่ตั้งเวลาไว้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 99 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

sendMessage()

สัญญา
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

ส่งข้อความเดียวไปยัง Listener เหตุการณ์ภายในส่วนขยายหรือส่วนขยาย/แอปอื่น คล้ายกับ runtime.connect แต่จะส่งข้อความเดียวโดยมีตัวเลือกการตอบกลับ หากส่งไปยังส่วนขยาย เหตุการณ์ runtime.onMessage จะเริ่มทำงานในทุกเฟรมของส่วนขยาย (ยกเว้นเฟรมของผู้ส่ง) หรือ runtime.onMessageExternal หากส่วนขยายอื่น โปรดทราบว่าส่วนขยายจะส่งข้อความไปยังสคริปต์เนื้อหาโดยใช้วิธีการนี้ไม่ได้ หากต้องการส่งข้อความไปยังสคริปต์เนื้อหา ให้ใช้ tabs.sendMessage

พารามิเตอร์

  • extensionId

    สตริง ไม่บังคับ

    รหัสของส่วนขยายที่จะส่งข้อความถึง หากไม่ระบุ ระบบจะส่งข้อความไปยังส่วนขยาย/แอปของคุณเอง ต้องระบุหากส่งข้อความจากหน้าเว็บสําหรับการรับส่งข้อความบนเว็บ

  • ข้อความ

    ใดๆ

    ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ JSON ที่รองรับได้

  • ตัวเลือก

    ออบเจ็กต์ไม่บังคับ

    • includeTlsChannelId

      บูลีน ไม่บังคับ

      กำหนดว่าจะส่งผ่านรหัสช่อง TLS ไปยัง onMessageExternal สำหรับกระบวนการที่กำลังรับข้อมูลเหตุการณ์การเชื่อมต่อหรือไม่

  • Callback

    ฟังก์ชัน ไม่บังคับ

    Chrome 99 ขึ้นไป

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: any) => void

    • การตอบกลับ

      ใดๆ

      ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยตัวแฮนเดิลของข้อความ หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับส่วนขยาย ระบบจะเรียกใช้ Callback โดยไม่มีอาร์กิวเมนต์ และตั้งค่า runtime.lastError ในข้อความแสดงข้อผิดพลาด

การคืนสินค้า

  • Promise<any>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

sendNativeMessage()

สัญญา
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)

ส่งข้อความเดียวไปยังแอปพลิเคชันเนทีฟ วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging"

พารามิเตอร์

  • แอปพลิเคชัน

    สตริง

    ชื่อของโฮสต์การรับส่งข้อความในเครื่อง

  • ข้อความ

    ออบเจ็กต์

    ข้อความที่จะส่งไปยังโฮสต์การรับส่งข้อความในเครื่อง

  • Callback

    ฟังก์ชัน ไม่บังคับ

    Chrome 99 ขึ้นไป

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (response: any) => void

    • การตอบกลับ

      ใดๆ

      ข้อความตอบกลับที่ส่งโดยโฮสต์การรับส่งข้อความในเครื่อง หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับโฮสต์การรับส่งข้อความแบบดั้งเดิม ระบบจะเรียกใช้การเรียกกลับโดยไม่มีอาร์กิวเมนต์และตั้งค่า runtime.lastError เป็นข้อความแสดงข้อผิดพลาด

การคืนสินค้า

  • Promise<any>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setUninstallURL()

สัญญา
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

ตั้งค่า URL ที่ระบบจะเข้าชมเมื่อถอนการติดตั้ง ซึ่งอาจใช้เพื่อล้างข้อมูลฝั่งเซิร์ฟเวอร์ ทำการวิเคราะห์ และใช้แบบสํารวจ สูงสุด 1,023 อักขระ

พารามิเตอร์

  • URL

    สตริง

    URL ที่เปิดหลังจากถอนการติดตั้งส่วนขยายแล้ว URL นี้ต้องมีรูปแบบ http: หรือ https: ตั้งค่าสตริงว่างเพื่อไม่ให้เปิดแท็บใหม่เมื่อถอนการติดตั้ง

  • Callback

    ฟังก์ชัน ไม่บังคับ

    Chrome 45 ขึ้นไป

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 99 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

onBrowserUpdateAvailable

เลิกใช้งานแล้ว
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

โปรดใช้ runtime.onRestartRequired

เรียกใช้เมื่ออัปเดต Chrome พร้อมให้ใช้งาน แต่ไม่ได้ติดตั้งทันทีเนื่องจากต้องรีสตาร์ทเบราว์เซอร์

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากกระบวนการส่วนขยายหรือสคริปต์เนื้อหา (โดย runtime.connect)

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (port: Port) => void

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากส่วนขยายอื่น (โดย runtime.connect) หรือจากเว็บไซต์ที่เชื่อมต่อภายนอก

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (port: Port) => void

onConnectNative

Chrome 76 ขึ้นไป
chrome.runtime.onConnectNative.addListener(
  callback: function,
)

เริ่มทํางานเมื่อมีการเชื่อมต่อจากแอปพลิเคชันที่มาพร้อมเครื่อง กิจกรรมนี้ต้องมีสิทธิ์ "nativeMessaging" ฟีเจอร์นี้รองรับเฉพาะใน Chrome OS เท่านั้น

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (port: Port) => void

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการติดตั้งส่วนขยายเป็นครั้งแรก อัปเดตส่วนขยายเป็นเวอร์ชันใหม่ และเมื่อมีการอัปเดต Chrome เป็นเวอร์ชันใหม่

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • id

        สตริง ไม่บังคับ

        ระบุรหัสของส่วนขยายโมดูลที่ใช้ร่วมกันที่นำเข้าซึ่งอัปเดตแล้ว ช่องนี้จะแสดงก็ต่อเมื่อ "เหตุผล" คือ "shared_module_update"

      • previousVersion

        สตริง ไม่บังคับ

        บ่งบอกถึงเวอร์ชันก่อนหน้าของส่วนขยายซึ่งเพิ่งได้รับการอัปเดต ระบบจะแสดงเฉพาะกรณีที่มี "เหตุผล" เท่านั้น คือ "อัปเดต"

      • เหตุผล

        เหตุผลที่ส่งกิจกรรมนี้

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

เรียกใช้เมื่อมีการส่งข้อความจากกระบวนการของส่วนขยาย (โดย runtime.sendMessage) หรือสคริปต์เนื้อหา (โดย tabs.sendMessage)

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      บูลีน | ไม่ระบุ

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการส่งข้อความจากส่วนขยายอื่น (โดย runtime.sendMessage) ไม่สามารถใช้ในสคริปต์เนื้อหา

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      boolean | ไม่ได้กำหนด

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

เริ่มทำงานเมื่อต้องรีสตาร์ทแอปหรืออุปกรณ์ที่ใช้ แอปควรปิดหน้าต่างทั้งหมดโดยเร็วที่สุดเพื่อให้การรีสตาร์ทเกิดขึ้น หากแอปไม่ดําเนินการใดๆ ระบบจะบังคับให้รีสตาร์ทหลังจากผ่านระยะเวลาผ่อนผัน 24 ชั่วโมงไปแล้ว ปัจจุบันเหตุการณ์นี้เริ่มทํางานสําหรับแอปคีออสก์ของ Chrome OS เท่านั้น

พารามิเตอร์

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

เริ่มทํางานเมื่อโปรไฟล์ที่ติดตั้งส่วนขยายนี้เริ่มทํางานเป็นครั้งแรก เหตุการณ์นี้จะไม่เริ่มทำงานเมื่อเริ่มโปรไฟล์ที่ไม่ระบุตัวตน แม้ว่าส่วนขยายนี้จะทำงานแบบ "แยก" ก็ตาม โหมดไม่ระบุตัวตน

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

ส่งไปยังหน้ากิจกรรมก่อนที่ระบบจะยกเลิกการโหลด ซึ่งทำให้ส่วนขยายมีโอกาสทำความสะอาดข้อมูล โปรดทราบว่าเนื่องจากหน้าเว็บกำลังยกเลิกการโหลด ระบบจึงไม่สามารถรับประกันได้ว่าการดำเนินการแบบไม่พร้อมกันที่เริ่มต้นขึ้นขณะจัดการเหตุการณ์นี้จะเสร็จสมบูรณ์ หากมีกิจกรรมเพิ่มเติมในหน้ากิจกรรมเกิดขึ้นก่อนที่จะยกเลิกการโหลด ระบบจะส่งเหตุการณ์ onsuspendedCanceled แล้วและจะไม่ยกเลิกการโหลดหน้าดังกล่าว

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

ส่งหลังจาก "ถูกระงับ" เพื่อระบุว่าจะไม่มีการยกเลิกการโหลดแอปพลิเคชันอีกต่อไป

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีอัปเดต แต่ไม่ได้ติดตั้งทันทีเนื่องจากแอปกำลังทำงาน หากไม่ดำเนินการใดๆ ระบบจะติดตั้งการอัปเดตในครั้งถัดไปที่ระบบยกเลิกการโหลดหน้าพื้นหลัง หากต้องการให้ติดตั้งเร็วขึ้น คุณสามารถเรียกใช้ chrome.runtime.reload() อย่างชัดเจนได้ หากส่วนขยายใช้หน้าพื้นหลังแบบถาวร ระบบจะไม่ยกเลิกการโหลดหน้าพื้นหลัง เว้นแต่คุณจะเรียกใช้ chrome.runtime.reload() ด้วยตนเองเพื่อตอบสนองต่อเหตุการณ์นี้ ระบบจะไม่ติดตั้งการอัปเดตจนกว่า Chrome จะรีสตาร์ทเองในครั้งถัดไป หากไม่มีตัวแฮนเดิลที่รอรับเหตุการณ์นี้อยู่ และส่วนขยายมีหน้าเว็บพื้นหลังแบบถาวร ส่วนขยายจะทำงานเสมือนว่ามีการเรียก chrome.runtime.reload() เพื่อตอบสนองต่อเหตุการณ์นี้

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • เวอร์ชัน

        สตริง

        หมายเลขเวอร์ชันของการอัปเดตที่มี

onUserScriptConnect

Chrome 115 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

เริ่มทํางานเมื่อมีการเชื่อมต่อจากสคริปต์ผู้ใช้จากส่วนขยายนี้

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (port: Port) => void

onUserScriptMessage

Chrome 115 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

เริ่มทํางานเมื่อส่งข้อความจากสคริปต์ผู้ใช้ที่เชื่อมโยงกับส่วนขยายเดียวกัน

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      boolean | ไม่ได้กำหนด