chrome.runtime

refresh date: 2026-09-25 robots: noindex

คำอธิบาย

ใช้ chrome.runtime API เพื่อดึงข้อมูล Service Worker, แสดงรายละเอียดเกี่ยวกับไฟล์ Manifest รวมถึงฟังและตอบสนองต่อเหตุการณ์ในวงจรของส่วนขยาย นอกจากนี้ คุณยังใช้ API นี้เพื่อแปลง Relative Path ของ 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

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

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

  • documentUrl

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

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

  • frameId

    ตัวเลข

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

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

    บูลีน

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

  • tabId

    ตัวเลข

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

  • windowId

    ตัวเลข

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

ExtensionLoadDetails

Chrome 157 ขึ้นไป

รายละเอียดเกี่ยวกับเหตุการณ์การโหลดส่วนขยาย

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

  • previousVersion

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

    ระบุเวอร์ชันก่อนหน้าของส่วนขยาย ซึ่งจะปรากฏก็ต่อเมื่อ "reason" เป็น "update" หรือ "enable" เท่านั้น หาก "reason" คือ "update" นี่คือเวอร์ชันของส่วนขยายก่อนที่จะอัปเดต หาก "reason" เป็น "enable" แสดงว่านี่เป็นเวอร์ชันปัจจุบันของส่วนขยาย

  • เหตุผล

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

MessageSender

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

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

  • documentId

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

    Chrome 106 ขึ้นไป

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

  • documentLifecycle

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

    Chrome 106 ขึ้นไป

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

  • frameId

    number ไม่บังคับ

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

  • id

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

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

  • nativeApplication

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

    Chrome 74 ขึ้นไป

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

  • origin

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

    Chrome 80 ขึ้นไป

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

  • แท็บ

    Tab ไม่บังคับ

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

  • tlsChannelId

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

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

  • URL

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

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

OnInstalledReason

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

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

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

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

"shared_module_update"
ระบุสาเหตุของเหตุการณ์เป็นการอัปเดตโมดูลที่แชร์

OnLoadedReason

Chrome 157 ขึ้นไป

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

ค่าแจกแจง

"install"
ติดตั้งส่วนขยายใหม่แล้ว

"update"
ระบบโหลดส่วนขยายซ้ำหลังจากการอัปเดต

"browser_update"
เบราว์เซอร์ได้รับการอัปเดตเป็นเวอร์ชันใหม่

"enable"
ส่วนขยายเปิดใช้อีกครั้งจากสถานะปิดใช้

"startup"
ระบบกำลังโหลดส่วนขยายระหว่างการเริ่มต้นเบราว์เซอร์

"reload"
มีการโหลดส่วนขยายซ้ำ (เช่น ผ่าน chrome.runtime.reload() หรือผู้ใช้โหลดส่วนขยายซ้ำด้วยตนเอง)

OnRestartRequiredReason

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

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

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

"periodic"
ระบุสาเหตุของเหตุการณ์เป็นการรีสตาร์ทแอปเป็นระยะๆ

PlatformArch

Chrome 44 ขึ้นไป

สถาปัตยกรรมตัวประมวลผลของเครื่อง

ค่าแจกแจง

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

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

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

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

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

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

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

PlatformInfo

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

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

  • สถาปัตยกรรมตัวประมวลผลของเครื่อง

  • nacl_arch

    PlatformNaclArch ไม่บังคับ

    เลิกใช้งานตั้งแต่ Chrome 149

    แอตทริบิวต์นี้เลิกใช้งานแล้วหลังจากนำ Native Client ออกทั้งหมด

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

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

PlatformNaclArch

Chrome 44 ขึ้นไป เลิกใช้งานตั้งแต่ Chrome 149

enum นี้เลิกใช้งานแล้วหลังจากการนำ Native Client ออกอย่างสมบูรณ์

สถาปัตยกรรมไคลเอ็นต์เนทีฟ ซึ่งอาจแตกต่างจาก 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

Port

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

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

  • name

    สตริง

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

  • onDisconnect

    Event<functionvoidvoid>

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

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

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

    • callback

      ฟังก์ชัน

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

      (port: Port) => void

  • onMessage

    Event<functionvoidvoid>

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

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

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

    • callback

      ฟังก์ชัน

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

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

  • ผู้ส่ง

    MessageSender ไม่บังคับ

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

  • ตัดการเชื่อมต่อ

    void

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

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

    () => {...}

  • postMessage

    void

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

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

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

    • ข้อความ

      ใดๆ

      Chrome 52 ขึ้นไป

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

RequestUpdateCheckStatus

Chrome 44 ขึ้นไป

ผลลัพธ์ของการตรวจสอบการอัปเดต

ค่าแจกแจง

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

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

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

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

id

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

ประเภท

สตริง

lastError

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

ประเภท

ออบเจ็กต์

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

  • ข้อความ

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

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

เมธอด

connect()

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

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

พารามิเตอร์

  • extensionId

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

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

  • connectInfo

    object ไม่บังคับ

    • includeTlsChannelId

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

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

    • name

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

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

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

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

connectNative()

chrome.runtime.connectNative(
  application: string,
)
: Port

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

พารามิเตอร์

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

    สตริง

    ชื่อของแอปพลิเคชันที่ลงทะเบียนไว้เพื่อเชื่อมต่อ

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

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

getBackgroundPage()

Promise เบื้องหน้าเท่านั้น เลิกใช้งานตั้งแต่ Chrome 133
chrome.runtime.getBackgroundPage(
  callback?: function,
)
: Promise<Window | undefined>

หน้าพื้นหลังไม่มีอยู่ในส่วนขยาย MV3

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (backgroundPage?: Window) => void

    • backgroundPage

      Window ไม่บังคับ

      ออบเจ็กต์ "window" ของ JavaScript สำหรับหน้าเบื้องหลัง

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

  • Promise<Window | undefined>

    Chrome 99 ขึ้นไป

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

getManifest()

chrome.runtime.getManifest(): object

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

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

  • ออบเจ็กต์

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

getPackageDirectoryEntry()

Promise เบื้องหน้าเท่านั้น
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)
: Promise<DirectoryEntry>

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

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

  • Promise<DirectoryEntry>

    Chrome 122 ขึ้นไป

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

getPlatformInfo()

Promise
chrome.runtime.getPlatformInfo(
  callback?: function,
)
: Promise<PlatformInfo>

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (platformInfo: PlatformInfo) => void

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

  • Promise<PlatformInfo>

    Chrome 99 ขึ้นไป

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

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

getURL()

chrome.runtime.getURL(
  path: string,
)
: string

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

พารามิเตอร์

  • เส้นทาง

    สตริง

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

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

  • สตริง

    URL ที่สมบูรณ์ในตัวเองของแหล่งข้อมูล

getVersion()

Chrome 143 ขึ้นไป
chrome.runtime.getVersion(): string

แสดงผลเวอร์ชันของส่วนขยายตามที่ประกาศไว้ในไฟล์ Manifest

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

  • สตริง

    เวอร์ชันของส่วนขยาย

openOptionsPage()

Promise
chrome.runtime.openOptionsPage(
  callback?: function,
)
: Promise<void>

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

ลักษณะการทำงานที่แน่นอนอาจขึ้นอยู่กับคีย์ options_ui หรือ options_page ของไฟล์ Manifest หรือสิ่งที่ Chrome รองรับในขณะนั้น เช่น หน้าเว็บอาจเปิดในแท็บใหม่ ภายใน chrome://extensions ภายในแอป หรืออาจโฟกัสที่หน้าตัวเลือกที่เปิดอยู่ และจะไม่ทำให้หน้าผู้โทรโหลดซ้ำ

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

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

reload()

chrome.runtime.reload(): void

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

requestUpdateCheck()

Promise
chrome.runtime.requestUpdateCheck(
  callback?: function,
)
: Promise<object>

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

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

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

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (result: object) => void

    • ผลลัพธ์

      ออบเจ็กต์

      Chrome 109 ขึ้นไป

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

      • สถานะ

        ผลลัพธ์ของการตรวจสอบการอัปเดต

      • เวอร์ชัน

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

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

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

  • Promise<object>

    Chrome 109 ขึ้นไป

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

restart()

chrome.runtime.restart(): void

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

restartAfterDelay()

Promise Chrome 53 ขึ้นไป
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)
: Promise<void>

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

พารามิเตอร์

  • วินาที

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

    Promise ที่จะได้รับการแก้ไขเมื่อกำหนดเวลาคำขอรีสตาร์ทใหม่เรียบร้อยแล้ว

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

sendMessage()

Promise
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)
: Promise<any>

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

พารามิเตอร์

  • extensionId

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

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

  • ข้อความ

    ใดๆ

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

  • ตัวเลือก

    object ไม่บังคับ

    • includeTlsChannelId

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

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

  • callback

    function ไม่บังคับ

    Chrome 99 ขึ้นไป

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

    (response: any) => void

    • การตอบกลับ

      ใดๆ

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

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

  • Promise<any>

    Chrome 99 ขึ้นไป

    เพิ่มการรองรับ Promise สำหรับบริบทส่วนขยายใน Chrome 99 เมื่อสื่อสารจากหน้าเว็บไปยังส่วนขยาย คุณจะใช้ Promise ได้ตั้งแต่ Chrome 118 เป็นต้นไป

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

sendNativeMessage()

Promise
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)
: Promise<any>

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

พารามิเตอร์

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

    สตริง

    ชื่อของโฮสต์การรับส่งข้อความในเครื่องหรือรายละเอียดเป้าหมาย

  • ข้อความ

    ออบเจ็กต์

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

  • callback

    function ไม่บังคับ

    Chrome 99 ขึ้นไป

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

    (response: any) => void

    • การตอบกลับ

      ใดๆ

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

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

  • Promise<any>

    Chrome 99 ขึ้นไป

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

setUninstallURL()

Promise
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)
: Promise<void>

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

พารามิเตอร์

  • URL

    สตริง

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

  • callback

    function ไม่บังคับ

    Chrome 45 ขึ้นไป

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

    () => void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

    Promise ที่จะได้รับการแก้ไขเมื่อตั้งค่า URL การถอนการติดตั้งแล้ว หาก URL ที่ระบุไม่ถูกต้อง ระบบจะปฏิเสธ Promise

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

กิจกรรม

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" โดยจะรองรับเฉพาะใน ChromeOS เท่านั้น

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (port: Port) => void

onEnabled

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

เริ่มทำงานเมื่อส่วนขยายเปลี่ยนจากสถานะปิดใช้เป็นสถานะเปิดใช้

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    () => void

onExtensionLoaded

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

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (details: ExtensionLoadDetails) => void

onInstalled

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

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • id

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

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

      • previousVersion

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

        ระบุเวอร์ชันก่อนหน้าของส่วนขยายที่เพิ่งอัปเดต ซึ่งจะปรากฏเฉพาะในกรณีที่ "reason" เป็น "update"

      • เหตุผล

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

onMessage

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

เริ่มทำงานเมื่อมีการส่งข้อความจาก runtime.sendMessage หรือ tabs.sendMessage

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

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

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

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

      (response?: any) => void

      • การตอบกลับ

        ไม่บังคับ

        การตอบกลับเพื่อส่งคืนไปยังผู้ส่งข้อความ

    • returns

      boolean | Promise<any> | undefined

onMessageExternal

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

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

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

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

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

      (response?: any) => void

      • การตอบกลับ

        ไม่บังคับ

        การตอบกลับเพื่อส่งคืนไปยังผู้ส่งข้อความ

    • returns

      boolean | Promise<any> | undefined

onRestartRequired

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

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

พารามิเตอร์

onStartup

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

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    () => void

onSuspend

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

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    () => void

onSuspendCanceled

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

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

พารามิเตอร์

  • 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

    • รายละเอียด

      ออบเจ็กต์

      • เวอร์ชัน

        สตริง

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