chrome.runtime

คำอธิบาย

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

สมาชิกส่วนใหญ่ของ API นี้ไม่ต้องใช้สิทธิ์ใดๆ สิทธิ์นี้จำเป็นสำหรับ connectNative(), sendNativeMessage() และ onNativeConnect

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

manifest.json:

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

แนวคิดและการใช้งาน

Runtime API มีเมธอดที่รองรับพื้นที่ต่างๆ ต่อไปนี้ซึ่งส่วนขยายของคุณใช้ได้

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

ลักษณะการทํางานของส่วนขยายที่แตกไฟล์แล้ว

เมื่อโหลดส่วนขยายที่แตกไฟล์แล้วซ้ำ ระบบจะถือว่าเป็นการอัปเดต ซึ่งหมายความว่าเหตุการณ์ chrome.runtime.onInstalled จะเริ่มต้นด้วยเหตุผล "update" ซึ่งรวมถึงกรณีที่โหลดส่วนขยายซ้ำด้วย chrome.runtime.reload()

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

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

หากต้องการให้หน้าเว็บเข้าถึงชิ้นงานที่โฮสต์ในโดเมนอื่น หน้าเว็บจะต้องระบุ 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 และ 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);
});

service-worker.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 หากบริบทนี้ไม่ได้โฮสต์ในหน้าต่าง

MessageSender

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

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

  • documentId

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

    Chrome 106 ขึ้นไป

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

  • documentLifecycle

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

    Chrome 106 ขึ้นไป

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

  • frameId

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

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

  • id

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

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

  • nativeApplication

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

    Chrome 74 ขึ้นไป

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

  • origin

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

    Chrome 80 ขึ้นไป

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

  • แท็บ

    แท็บ ไม่บังคับ

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

  • tlsChannelId

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

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

  • URL

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

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

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 หากพอร์ตถูกตัดการเชื่อมต่อเนื่องจากข้อผิดพลาด หากพอร์ตปิดอยู่ผ่าน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 ไม่บังคับ

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

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

    โมฆะ

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

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

    () => {...}

  • postMessage

    โมฆะ

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

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

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

    • ข้อความ

      ใดๆ

      Chrome 52 ขึ้นไป

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

RequestUpdateCheckStatus

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

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

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

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

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

id

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

ประเภท

สตริง

lastError

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

ประเภท

ออบเจ็กต์

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

  • ข้อความ

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

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

เมธอด

connect()

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

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

พารามิเตอร์

  • extensionId

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

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

  • connectInfo

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

    • includeTlsChannelId

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

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

    • ชื่อ

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

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

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

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

connectNative()

chrome.runtime.connectNative(
  application: string,
)

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

พารามิเตอร์

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

    สตริง

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

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

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

getBackgroundPage()

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

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

พารามิเตอร์

  • Callback

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

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

    (backgroundPage?: Window) => void

    • backgroundPage

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

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

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

  • Promise<Window | undefined>

    Chrome 99 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

getContexts()

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

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

พารามิเตอร์

  • ตัวกรอง

    ตัวกรองเพื่อค้นหาบริบทที่ตรงกัน บริบทจะตรงกันหากตรงกับช่องที่ระบุทั้งหมดในตัวกรอง ช่องที่ไม่ได้ระบุในตัวกรองจะตรงกับบริบททั้งหมด

  • Callback

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

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

    (contexts: ExtensionContext[]) => void

    • บริบท

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

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

  • Promise<ExtensionContext[]>

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

getManifest()

chrome.runtime.getManifest()

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

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

  • ออบเจ็กต์

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

getPackageDirectoryEntry()

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

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

พารามิเตอร์

  • Callback

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

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

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

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

  • Promise<DirectoryEntry>

    Chrome 122 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

getPlatformInfo()

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

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

พารามิเตอร์

  • Callback

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

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

    (platformInfo: PlatformInfo) => void

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

  • Promise<PlatformInfo>

    Chrome 99 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

getURL()

chrome.runtime.getURL(
  path: string,
)

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

พารามิเตอร์

  • เส้นทาง

    สตริง

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

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

  • สตริง

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

openOptionsPage()

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

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

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

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

พารามิเตอร์

  • Callback

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

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

    () => void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

reload()

chrome.runtime.reload()

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

requestUpdateCheck()

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

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

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

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

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

พารามิเตอร์

  • Callback

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

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

    (result: object) => void

    • ผลลัพธ์

      ออบเจ็กต์

      Chrome 109 ขึ้นไป

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

      • สถานะ

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

      • เวอร์ชัน

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

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

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

  • Promise<object>

    Chrome 109 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

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 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

sendMessage()

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

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

พารามิเตอร์

  • extensionId

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

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

  • ข้อความ

    ใดๆ

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

  • ตัวเลือก

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

    • includeTlsChannelId

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

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

  • Callback

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

    Chrome 99 ขึ้นไป

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

    (response: any) => void

    • การตอบกลับ

      ใดๆ

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

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

  • Promise<any>

    Chrome 99 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

sendNativeMessage()

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

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

พารามิเตอร์

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

    สตริง

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

  • ข้อความ

    ออบเจ็กต์

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

  • Callback

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

    Chrome 99 ขึ้นไป

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

    (response: any) => void

    • การตอบกลับ

      ใดๆ

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

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

  • Promise<any>

    Chrome 99 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

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 ขึ้นไป

    ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ

กิจกรรม

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

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

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,
)

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

    • รายละเอียด

      ออบเจ็กต์

      • เวอร์ชัน

        สตริง

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

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

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