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()
ยูทิลิตีของ Helper
วิธีการเหล่านี้มีประโยชน์ เช่น การแปลงการแสดงทรัพยากรภายในเป็นรูปแบบภายนอก วิธีการในหมวดหมู่นี้ ได้แก่ getURL()
ยูทิลิตีของโหมดคีออสก์
วิธีการเหล่านี้ใช้ได้เฉพาะใน ChromeOS และมีไว้เพื่อรองรับการใช้งานคีออสก์เป็นหลัก วิธีการในหมวดหมู่ ได้แก่ restart() และ restartAfterDelay()

ลักษณะการทำงานของส่วนขยายที่คลายแพ็กแล้ว

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

Use Case

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

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

เป็นเรื่องปกติที่สคริปต์เนื้อหาของส่วนขยายจะต้องมีข้อมูลที่จัดการโดยส่วนอื่นของส่วนขยาย เช่น โปรแกรมทำงานของบริการ เช่นเดียวกับหน้าต่างเบราว์เซอร์ 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);
});

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"
ระบุประเภทบริบทเป็นแผงด้านข้าง

ExtensionContext

Chrome 114 ขึ้นไป

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

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

  • contextId

    string

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

  • contextType

    ประเภทของบริบทที่สอดคล้อง

  • documentId

    string ไม่บังคับ

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

  • documentOrigin

    string ไม่บังคับ

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

  • documentUrl

    string ไม่บังคับ

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

  • frameId

    ตัวเลข

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

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

    boolean

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

  • tabId

    ตัวเลข

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

  • windowId

    ตัวเลข

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

MessageSender

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

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

  • documentId

    string ไม่บังคับ

    Chrome 106 ขึ้นไป

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

  • documentLifecycle

    string ไม่บังคับ

    Chrome 106 ขึ้นไป

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

  • frameId

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

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

  • id

    string ไม่บังคับ

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

  • nativeApplication

    string ไม่บังคับ

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

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

  • ต้นกำเนิด

    string ไม่บังคับ

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

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

  • Tab

    Tab ไม่บังคับ

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

  • tlsChannelId

    string ไม่บังคับ

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

  • url

    string ไม่บังคับ

    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"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตระบบปฏิบัติการ

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

PlatformArch

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

"arm"
ระบุว่าสถาปัตยกรรมของโปรเซสเซอร์เป็นกลุ่มทดสอบ

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

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

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

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

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

PlatformInfo

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

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

  • ซุ้มประตู

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

  • nacl_arch

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

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

PlatformNaclArch

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

"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

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

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

  • ชื่อ

    string

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

  • onDisconnect

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

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

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

    void

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

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

    ()=> {...}

  • postMessage

    void

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

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

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

    • ข้อความ

      อะไรก็ได้

      Chrome 52 ขึ้นไป

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

RequestUpdateCheckStatus

Chrome 44 ขึ้นไป

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

ค่าแจกแจง

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

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

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

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

id

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

ประเภท

string

lastError

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

ประเภท

ออบเจ็กต์

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

  • ข้อความ

    string ไม่บังคับ

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

วิธีการ

connect()

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

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

พารามิเตอร์

  • extensionId

    string ไม่บังคับ

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

  • connectInfo

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

    • includeTlsChannelId

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

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

    • ชื่อ

      string ไม่บังคับ

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

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

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

connectNative()

chrome.runtime.connectNative(
  application: string,
)

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

พารามิเตอร์

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

    string

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

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

  • ย้ายเพื่อรับส่งข้อความด้วยแอปพลิเคชัน

getBackgroundPage()

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

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

พารามิเตอร์

  • Callback

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

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

    (backgroundPage?: Window)=>void

    • backgroundPage

      หน้าต่าง ไม่บังคับ

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

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

  • สัญญา<Window|undefined>

    Chrome 99 ขึ้นไป

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

getContexts()

คำสัญญา Chrome 116+ MV3+
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

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

พารามิเตอร์

  • ฟิลเตอร์

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

  • Callback

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

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

    (contexts: ExtensionContext[])=>void

    • บริบท

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

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

  • Promise<ExtensionContext[]>

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

getPlatformInfo()

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

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

พารามิเตอร์

  • Callback

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

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

    (platformInfo: PlatformInfo)=>void

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

  • Promise<PlatformInfo>

    Chrome 99 ขึ้นไป

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

getURL()

chrome.runtime.getURL(
  path: string,
)

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

พารามิเตอร์

  • เส้นทาง

    string

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

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

  • string

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

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

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

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

      • เวอร์ชัน

        string ไม่บังคับ

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

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

  • Promise<object>

    Chrome 109 ขึ้นไป

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

restart()

chrome.runtime.restart()

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

restartAfterDelay()

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

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

พารามิเตอร์

  • วินาที

    ตัวเลข

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

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

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

sendMessage()

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

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

พารามิเตอร์

  • extensionId

    string ไม่บังคับ

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

  • ข้อความ

    อะไรก็ได้

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

  • ตัวเลือก

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

    • includeTlsChannelId

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

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

  • Callback

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

    Chrome 99 ขึ้นไป

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

    (response: any)=>void

    • การตอบกลับ

      อะไรก็ได้

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

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

  • คำสัญญา<any>

    Chrome 99 ขึ้นไป

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

sendNativeMessage()

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

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

พารามิเตอร์

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

    string

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

  • ข้อความ

    ออบเจ็กต์

    ข้อความที่จะส่งถึงโฮสต์การรับส่งข้อความดั้งเดิม

  • Callback

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

    Chrome 99 ขึ้นไป

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

    (response: any)=>void

    • การตอบกลับ

      อะไรก็ได้

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

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

  • คำสัญญา<any>

    Chrome 99 ขึ้นไป

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

setUninstallURL()

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

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

พารามิเตอร์

  • url

    string

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

  • Callback

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

    Chrome 45 ขึ้นไป

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

    ()=>void

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

  • Promise<void>

    Chrome 99 ขึ้นไป

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

        string ไม่บังคับ

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

      • previousVersion

        string ไม่บังคับ

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

      • สาเหตุ

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

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

      boolean|undefined

onMessageExternal

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

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

    • ข้อความ

      อะไรก็ได้

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

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

      ()=>void

    • returns

      boolean|undefined

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

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

พารามิเตอร์

  • 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

    • รายละเอียด

      ออบเจ็กต์

      • เวอร์ชัน

        string

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

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|undefined