Właściwość manifestu externally_connectable
deklaruje, które rozszerzenia, aplikacje i strony internetowe mogą
połącz się z aplikacją przez runtime.connect
i runtime.sendMessage
.
Aby zapoznać się z samouczkiem na temat przekazywania wiadomości, zapoznaj się z artykułami o wysyłaniu wiadomości do aplikacji i o rozszerzeniach oraz o wysyłaniu wiadomości ze stron internetowych.
Łączenie bez połączenia zewnętrznego
Jeśli w pliku manifestu aplikacji nie ma zadeklarowanego externally_connectable
, wszystkie rozszerzenia i aplikacje mogą
ale żadne strony internetowe nie mogą nawiązać połączenia. W rezultacie, gdy aktualizujesz plik manifestu, aby używał
externally_connectable
, jeśli nie określisz wartości "ids": ["*"]
, inne rozszerzenia i aplikacje będą
utracisz możliwość łączenia się z aplikacją. Pamiętaj, że może to być niezamierzonym konsekwencją.
Przykładowy plik 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
},
...
}
Dokumentacja
Klucz manifestu zewnętrznie_connectable może mieć te właściwości:
ids
(tablica ciągu znaków) – opcjonalnieIdentyfikatory rozszerzeń lub aplikacji, które mogą się łączyć. Jeśli pole pozostanie puste lub nieokreślone, nie rozszerzenia i aplikacje, z którymi mogą się łączyć.
Symbol wieloznaczny
"*"
umożliwia łączenie wszystkich rozszerzeń i aplikacji.matches
(tablica ciągu znaków) – opcjonalnieWzorce adresów URL stron internetowych, które mogą się łączyć. Nie dotyczy to treści skryptów. Jeśli pole pozostanie puste lub nieokreślone, żadne strony internetowe nie będą mogły się połączyć.
Wzorce nie mogą zawierać domen z symbolami wieloznacznymi ani subdomen (efektywnych) domen najwyższego poziomu. Prawidłowe wartości:
*://google.com/*
ihttps://*.chromium.org/*
, a<all_urls>
,https://*/*
,*://*.com/*
, a nawethttps://*.appspot.com/*
nie.accepts_tls_channel_id
(wartość logiczna) – opcjonalnaJeśli zasada
true
, wiadomości wysyłane przezruntime.connect
lubruntime.sendMessage
zostaną ustawioneruntime.MessageSender.tlsChannelId
, jeśli wymagają tego te metody. Jeślifalse
,runtime.MessageSender.tlsChannelId
nie zostanie nigdy ustawiony w żadnych okolicznościach.