externally_connectable

Thuộc tính tệp kê khai externally_connectable khai báo những tiện ích, ứng dụng và trang web có thể kết nối với ứng dụng của bạn qua runtime.connectruntime.sendMessage.

Để xem hướng dẫn về cách truyền thông báo, hãy xem nội dung tiện ích trên nhiều tiện ích và thông báo trên ứng dụng cũng như gửi thông báo từ các trang web.

Kết nối mà không cần kết nối bên ngoài

Nếu externally_connectable không được khai báo trong tệp kê khai của ứng dụng, thì mọi tiện ích và ứng dụng đều có thể kết nối, nhưng không trang web nào có thể kết nối. Do đó, khi bạn cập nhật tệp kê khai để sử dụng externally_connectable, nếu bạn không chỉ định "ids": ["*"] thì các tiện ích và ứng dụng khác sẽ mất khả năng kết nối với ứng dụng của bạn. Đây có thể là hậu quả ngoài ý muốn, vì vậy, hãy lưu ý điều này.

Tệp manifest.json mẫu

{
  "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
  },
  ...
}

Tài liệu tham khảo

Khoá tệp kê khai External_connectable có thể có các thuộc tính sau:

  • ids (mảng chuỗi) – không bắt buộc

    Mã của các tiện ích hoặc ứng dụng được phép kết nối. Nếu để trống hoặc không chỉ định, thì sẽ không có tiện ích hoặc ứng dụng nào có thể kết nối.

    Ký tự đại diện "*" sẽ cho phép tất cả tiện ích và ứng dụng kết nối.

  • matches (mảng chuỗi) – không bắt buộc

    Các mẫu URL cho các trang web được phép kết nối. Điều này không ảnh hưởng đến tập lệnh nội dung. Nếu bạn để trống hoặc không chỉ định, thì sẽ không có trang web nào có thể kết nối.

    Các mẫu không được bao gồm miền ký tự đại diện hay miền con của miền cấp cao nhất(có hiệu lực); *://google.com/*https://*.chromium.org/* là hợp lệ, trong khi <all_urls>, https://*/*, *://*.com/* và thậm chí https://*.appspot.com/* thì không hợp lệ.

  • accepts_tls_channel_id (boolean) – không bắt buộc

    Nếu là true, các tin nhắn được gửi qua runtime.connect hoặc runtime.sendMessage sẽ thiết lập runtime.MessageSender.tlsChannelId nếu các phương thức đó yêu cầu. Nếu giá trị là false, runtime.MessageSender.tlsChannelId sẽ không bao giờ được đặt trong bất kỳ trường hợp nào.