externally_connectable

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) – optional

    Die 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) – optional

    Die 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/* und https://*.chromium.org/* sind gültig, <all_urls>, https://*/*, *://*.com/* und sogar https://*.appspot.com/* nicht.

  • accepts_tls_channel_id (boolesch) – optional

    Wenn true, werden über runtime.connect oder runtime.sendMessage gesendete Nachrichten festgelegt runtime.MessageSender.tlsChannelId, wenn dies durch diese Methoden angefordert wird. Wenn false, runtime.MessageSender.tlsChannelId wird unter keinen Umständen festgelegt.