พร็อพเพอร์ตี้ไฟล์ Manifest externally_connectable
จะประกาศว่าส่วนขยาย แอป และหน้าเว็บใดบ้างที่สามารถ
เชื่อมต่อกับส่วนขยายผ่าน runtime.connect และ runtime.sendMessage
หากต้องการดูบทแนะนำเกี่ยวกับการส่งข้อความ โปรดดูส่วนขยายแบบข้ามส่วนขยายและการรับส่งข้อความในแอป และการส่งข้อความ จากหน้าเว็บ
กำลังเชื่อมต่อโดยไม่มีการเชื่อมต่อภายนอก
หากไม่ได้ประกาศ externally_connectable
ในไฟล์ Manifest ของส่วนขยาย ส่วนขยายและแอปทั้งหมด
เชื่อมต่อได้ แต่ไม่มีหน้าเว็บใดเชื่อมต่อได้ ดังนั้น เมื่ออัปเดตไฟล์ Manifest
externally_connectable
หากไม่ได้ระบุ "ids": ["*"]
ส่วนขยายและแอปอื่นๆ จะ
จะเชื่อมต่อกับส่วนขยายไม่ได้ กรณีนี้อาจเกิดขึ้นโดยไม่เจตนา ดังนั้นโปรดรอ
ในใจ
ตัวอย่าง Manifest.json
{
"name": "My externally connectable extension",
"externally_connectable": {
// Extension and app IDs. If this field is not specified, no
// extensions or apps can connect.
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
// Alternatively, to match all extensions and apps, specify only
// "*".
"*"
],
// Match patterns for web pages. Does not affect content scripts.
// If this field is not specified, no webpages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
// Indicates that the extension would like to make use of the TLS
// channel ID of the web page connecting to it. The web page must
// also opt to send the TLS channel ID to the extension via setting
// includeTlsChannelId to true in runtime.connect's connectInfo
// or runtime.sendMessage's options.
"accepts_tls_channel_id": false
},
...
}
ข้อมูลอ้างอิง
คีย์ไฟล์ Manifest ที่เชื่อมต่อภายนอกได้อาจมีพร็อพเพอร์ตี้ดังต่อไปนี้
ids
(อาร์เรย์ของสตริง) - ไม่บังคับรหัสของส่วนขยายหรือแอปที่อนุญาตให้เชื่อมต่อ หากเว้นว่างไว้หรือไม่ได้ระบุ ระบบจะไม่ ส่วนขยายหรือแอปสามารถเชื่อมต่อได้
ไวลด์การ์ด
"*"
จะอนุญาตให้ส่วนขยายและแอปทั้งหมดเชื่อมต่อได้matches
(อาร์เรย์ของสตริง) - ไม่บังคับรูปแบบ URL สำหรับหน้าเว็บที่ได้รับอนุญาตให้เชื่อมต่อ ไม่มีผลต่อเนื้อหา แบบสคริปต์เดียว หากเว้นว่างไว้หรือไม่ได้ระบุ หน้าเว็บจะเชื่อมต่อไม่ได้
รูปแบบไม่สามารถรวมโดเมนไวลด์การ์ดหรือโดเมนย่อยของโดเมนระดับบนสุด(มีประสิทธิภาพ)
*://google.com/*
และhttp://*.chromium.org/*
ใช้ได้ในขณะที่<all_urls>
,http://*/*
,*://*.com/*
หรือแม้แต่http://*.appspot.com/*
ก็ไม่ใช่accepts_tls_channel_id
(บูลีน) - ไม่บังคับหากเป็น
true
ระบบจะตั้งค่าข้อความที่ส่งผ่าน runtime.connect หรือ runtime.sendMessage runtime.MessageSender.tlsChannelId หากวิธีการเหล่านั้นทำให้เป็นจริง หากเป็นfalse
หากไม่มีการตั้งค่า runtime.MessageSender.tlsChannelId ไม่ว่าในกรณีใดก็ตาม