externally_connectable(外部可连接)

externally_connectable 清单属性声明哪些扩展程序、应用程序和网页可以通过 runtime.connectruntime.sendMessage. 连接到您的扩展程序。

有关消息传递的教程,请参阅跨扩展和应用程序消息传递以及从网页发送消息

# 没有 externally_connectable 连接

如果externally_connectable 未在您的扩展程序清单中声明,则所有扩展程序和应用程序都可以连接,但没有网页可以连接。因此,在更新清单以使用 externally_connectable 时,如果未指定 "ids": ["*"],则其他扩展程序和应用程序将无法连接到您的扩展程序。这可能是一个意想不到的结果,所以请记住这一点。

# Sample manifest.json(样本)

{
  "name": "My externally connectable extension",
  "externally_connectable": {
    // 扩展和应用程序 ID。如果未指定此字段,则不 
    // 扩展程序或应用程序可以连接。
    "ids": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      ...
      // 或者,要匹配所有扩展程序和应用程序,只需指定
      // "*".
      "*"
    ],
    // 匹配网页的模式。不影响内容脚本。 
    // 如果不指定此字段,则无法连接任何网页。
    "matches": [
      "https://*.google.com/*",
      "*://*.chromium.org/*",
      ...
    ],
    // 表示扩展想要使用 TLS 
    // 连接到它的网页的频道 ID。网页必须 
    // 也选择通过设置将 TLS 通道 ID 发送到扩展
    // 在runtime.connect 的connectInfo 中包含TlsChannelId 为true 
    // 或 runtime.sendMessage 的选项。
    "accepts_tls_channel_id": false
  },
  ...
}

# Reference(参考)

externally_connectable 清单键可以具有以下属性:

  • ids (array of string) - 可选的 允许连接的扩展程序或应用程序的 ID。如果留空或未指定,则无法连接任何扩展程序或应用程序。 通配符“*”将允许所有扩展程序和应用程序连接。
  • matches (array of string) - 可选的 允许连接的网页的 URL 模式。这不会影响内容脚本。如果留空或未指定,则无法连接任何网页。 模式不能包括通配符域或子域(有效的顶级域)(effective) top level domains*://google.com/*http://*.chromium.org/* 是有效的,而 <all_urls>http://*/**://*.com/* 甚至 http ://*.appspot.com/* 不是。
  • accepts_tls_channel_id (boolean) - 可选的 如果为 true,则通过 runtime.connectruntime.sendMessage 发送的消息将设置 runtime.MessageSender.tlsChannelId(如果这些方法要求设置)。如果为 false,则在任何情况下都不会设置 runtime.MessageSender.tlsChannelId

By.一粒技术服务

results matching ""

    No results matching ""