protocol_handlers

Typ Array
Verpflichtend Nein
Manifest-Version 2 oder höher
Beispiel
json
"protocol_handlers": [
  {
    "protocol": "ircs",
    "name": "IRC Mozilla Erweiterung",
    "uriTemplate": "https://irccloud.mozilla.com/#!/%s"
  }
]

Verwenden Sie diesen Schlüssel, um einen oder mehrere webbasierte Protokollhandler zu registrieren.

Ein Protokollhandler ist eine Anwendung, die weiß, wie bestimmte Typen von Links zu behandeln sind: Zum Beispiel ist ein E-Mail-Client ein Protokollhandler für "mailto:"-Links. Wenn der Benutzer auf einen "mailto:"-Link klickt, öffnet der Browser die Anwendung, die als Handler für das "mailto:"-Protokoll ausgewählt wurde (oder bietet dem Benutzer eine Auswahl von Handlern an, abhängig von den Einstellungen).

Hinweis: Standardmäßig laufen Erweiterungen nicht in privaten Browser-Fenstern. Da Protokollhandler Teil der Erweiterung sind, funktionieren sie standardmäßig nicht in privaten Browser-Fenstern. Ob eine Erweiterung auf private Browser-Fenster zugreifen kann und ihre Protokollhandler aktiv werden, liegt in der Kontrolle des Benutzers. Für Details siehe Extensions in Private Browsing. Ihre Erweiterung kann überprüfen, ob sie auf private Browser-Fenster zugreifen kann, indem sie extension.isAllowedIncognitoAccess verwendet.

Mit diesem Schlüssel können Sie eine Website als Handler für ein bestimmtes Protokoll registrieren. Die Syntax und Semantik dieses Schlüssels ähnelt sehr der Funktion Navigator.registerProtocolHandler(), außer dass mit registerProtocolHandler() eine Website sich nur selbst als Handler registrieren kann.

Jeder Protokollhandler hat drei Eigenschaften, alle verpflichtend:

protocol

Ein String, der das Protokoll definiert. Dieser muss entweder:

  • einer der folgenden sein: "bitcoin", "dat", "dweb", "ftp", "geo", "gopher", "im", "ipfs", "ipns", "irc", "ircs", "magnet", "mailto", "matrix", "mms", "news", "nntp", "sip", "sms", "smsto", "ssb", "ssh", "tel", "urn", "webcal", "wtai", "xmpp".
  • ein String, der aus einem benutzerdefinierten Namen besteht, der mit "web+" oder "ext+" beginnt. Zum Beispiel: "web+foo" oder "ext+foo". Der benutzerdefinierte Name darf nur aus ASCII-Zeichen in Kleinbuchstaben bestehen. Es wird empfohlen, dass Erweiterungen die Form "ext+" verwenden.
name

Ein String, der den Namen des Protokollhandlers darstellt. Dieser wird dem Benutzer angezeigt, wenn gefragt wird, ob dieser Handler den Link öffnen soll.

uriTemplate

Ein String, der die URL des Handlers darstellt. Dieser String muss "%s" als Platzhalter enthalten: Dies wird durch die escapte URL des zu behandelnden Dokuments ersetzt. Diese URL könnte eine echte URL sein oder eine Telefonnummer, E-Mail-Adresse usw. Diese ist eine lokalisierbare Eigenschaft.

Beispiel

json
"protocol_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "https://example.com/#!/%s"
  }
]

Wenn das Protokoll nicht in der erlaubten Liste ist, muss es mit 'ext+' beginnen.

json
"protocol_handlers": [
  {
    "protocol": "ext+foo",
    "name": "Foo Extension",
    "uriTemplate": "https://example.com/#!/%s"
  }
]

Handler können auch Erweiterungsseiten sein.

json
"protocol_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "/example.xhtml#!/%s"
  }
]

Browser-Kompatibilität