externally_connectable

พร็อพเพอร์ตี้ไฟล์ Manifest externally_connectable จะประกาศว่าส่วนขยาย แอป และหน้าเว็บใดบ้างที่สามารถ เชื่อมต่อกับแอปของคุณผ่าน runtime.connect และ runtime.sendMessage

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

กำลังเชื่อมต่อโดยไม่มีการเชื่อมต่อภายนอก

หากไม่ได้ประกาศ externally_connectable ในไฟล์ Manifest ของแอป ส่วนขยายและแอปทั้งหมดสามารถ เชื่อมต่อ แต่ไม่มีหน้าเว็บใดเชื่อมต่อได้ ดังนั้น เมื่ออัปเดตไฟล์ Manifest externally_connectable หากไม่ได้ระบุ "ids": ["*"] ส่วนขยายและแอปอื่นๆ จะ เชื่อมต่อกับแอปของคุณไม่ได้อีก เหตุการณ์นี้อาจเกิดขึ้นโดยไม่เจตนา ดังนั้นโปรดคำนึงถึงเรื่องนี้

ตัวอย่าง Manifest.json

{
  "name": "My externally connectable app",
  "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/* และ https://*.chromium.org/* ใช้ได้ในขณะที่ <all_urls>, https://*/*, *://*.com/* หรือแม้แต่ https://*.appspot.com/* ก็ไม่ใช่

  • accepts_tls_channel_id (บูลีน) - ไม่บังคับ

    หากเป็น true ระบบจะตั้งค่าข้อความที่ส่งผ่าน runtime.connect หรือ runtime.sendMessage runtime.MessageSender.tlsChannelId หากวิธีการเหล่านั้นทำให้ต้องทำเช่นนั้น หากเป็น false จะไม่มีการตั้งค่า runtime.MessageSender.tlsChannelId ไม่ว่าในกรณีใดๆ