Die Manifest-Property externally_connectable
deklariert, welche Erweiterungen, Apps und Webseiten
stellen Sie über runtime.connect
und runtime.sendMessage
eine Verbindung zu Ihrer App her.
Eine Anleitung zur Weitergabe von Nachrichten finden Sie unter Erweiterungs- und App-übergreifende Nachrichtenübermittlung und Nachrichten senden von Webseiten.
Verbindung ohne „external_connectable“ herstellen
Wenn externally_connectable
nicht im Manifest deiner App deklariert ist, können alle Erweiterungen und Apps
eine Verbindung herstellen, aber keine Webseiten können eine Verbindung herstellen. Wenn Sie Ihr Manifest aktualisieren,
externally_connectable
, wenn "ids": ["*"]
nicht angegeben ist, werden andere Erweiterungen und Apps
können Sie keine Verbindung
zu Ihrer App mehr herstellen. Das kann eine unbeabsichtigte Folge sein, daher solltest du das im Hinterkopf behalten.
Beispielmanifest.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
},
...
}
Referenz
Der Manifestschlüssel „external_connectable“ kann die folgenden Attribute haben:
ids
(Array von String) – optionalDie IDs der Erweiterungen oder Apps, die eine Verbindung herstellen dürfen. Wenn leer oder nicht angegeben, nein oder Apps eine Verbindung herstellen können.
Mit dem Platzhalter „
"*"
“ können alle Erweiterungen und Apps eine Verbindung herstellen.matches
(Array von String) – optionalDie URL-Muster für Webseiten, die eine Verbindung herstellen dürfen. Dies hat keine Auswirkungen auf die Inhalte. Skripts erstellt. Wenn das Feld leer oder nicht angegeben ist, können keine Webseiten verbunden werden.
Muster dürfen keine Platzhalter-Domains oder Subdomains von effektiven Top-Level-Domains enthalten.
*://google.com/*
undhttps://*.chromium.org/*
sind gültig,<all_urls>
,https://*/*
,*://*.com/*
und sogarhttps://*.appspot.com/*
nicht.accepts_tls_channel_id
(boolesch) – optionalWenn
true
, werden überruntime.connect
oderruntime.sendMessage
gesendete Nachrichten festgelegtruntime.MessageSender.tlsChannelId
, wenn dies durch diese Methoden angefordert wird. Wennfalse
,runtime.MessageSender.tlsChannelId
wird unter keinen Umständen festgelegt.