externally_connectable
清单文件中的 externally_connectable
属性声明哪些扩展程序、应用和网页可以通过
runtime.connect
和
runtime.sendMessage
连接到您的扩展程序。
有关消息传递的教程请参见跨扩展程序和应用的消息传递和从网页中发送消息。
没有声明 externally_connectable 时连接
如果您的扩展程序中没有声明
externally_connectable
,所有扩展程序和应用都能连接,但是网页不能连接。当您更新您的清单文件使用
externally_connectable
时,如果没有指定
"ids": ["*"]
,其他所有扩展程序和应用都无法再连接到您的扩展程序,您并不一定期望这样的结果,所以请牢记这一点。
manifest.json 示例
{ "name": "可以从外部连接的扩展程序", "externally_connectable": { // 扩展程序与应用的标识符。如果没有指定该字段, // 任何扩展程序或应用都无法连接。 "ids": [ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", ... // 或者如果要匹配所有扩展程序和应用,只需要指定 "*"。 "*" ], // 网页的匹配表达式,不影响内容脚本。 // 如果没有指定该字段,任何网页都无法连接。 "matches": [ "https://*.google.com/*", "*://*.chromium.org/*", ... ], // 表示扩展程序需要使用连接到它的网页的 // TLS 通道标识符,网页也必须将 runtime.connect 的 // connectInfo 或 runtime.sendMessage 的 options // 中的includeTlsChannelId
设置为true
。 "accepts_tls_channel_id": false }, ... }
参考
array of string | (可选) ids |
允许连接的扩展程序或应用的标识符。如果为空或未指定,任何扩展程序或应用都不能连接。 通配符 |
array of string | (可选) matches |
允许连接的网页的 URL 匹配表达式,并不会影响内容脚本。如果为空或未指定,任何网页都不能连接。 表达式不能包含通配符域名,也不能包含(有效)顶级域名的子域名。例如 |
boolean | (可选) accepts_tls_channel_id |
如果为 |