Spec-Zone.ru › Web Extensions

Обработчики протоколов

Тип Array
Обязательность Нет
Версия манифеста 2 или выше
Пример
"protocol_handlers": [
  {
    "protocol": "ircs",
    "name": "IRC Mozilla Extension",
    "uriTemplate": "https://irccloud.mozilla.com/#!/%s"
  }
]

Используйте этот ключ для регистрации одного или нескольких веб-обработчиков протоколов.

Обработчик протокола — это приложение, которое знает, как обрабатывать определённые типы ссылок: например, почтовый клиент является обработчиком протокола для ссылок "mailto:". Когда пользователь нажимает на ссылку "mailto:", браузер открывает приложение, выбранное в качестве обработчика для протокола "mailto:" (или предлагает выбор обработчиков, в зависимости от настроек).

Примечание: По умолчанию расширения не выполняются в окнах частного просмотра. Поскольку обработчики протоколов являются частью расширения, по умолчанию они не работают в окнах частного просмотра. Возможность доступа расширения к окнам частного просмотра и активация его обработчиков протоколов находятся под контролем пользователя. Подробности см. в Расширения в частном просмотре. Ваше расширение может проверить, может ли оно получить доступ к окнам частного просмотра, используя extension.isAllowedIncognitoAccess.

С помощью этого ключа вы можете зарегистрировать веб-сайт в качестве обработчика определённого протокола. Синтаксис и семантика этого ключа очень похожи на функцию Navigator.registerProtocolHandler(), за исключением того, что с помощью registerProtocolHandler() веб-сайт может только зарегистрировать себя в качестве обработчика.

Каждый обработчик протокола имеет три свойства, все обязательные:

protocol

Строка, определяющая протокол. Она должна быть либо:

  • одним из следующих: "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".
  • строкой, состоящей из пользовательского имени, предваряемого "web+" или "ext+". Например: "web+foo" или "ext+foo". Пользовательское имя должно содержать только строчные ASCII символы. Рекомендуется, чтобы расширения использовали форму "ext+".
name

Строка, представляющая имя обработчика протокола. Она будет отображаться пользователю, когда его попросят, хочет ли он использовать этот обработчик для открытия ссылки.

uriTemplate

Строка, представляющая URL обработчика. Эта строка должна включать "%s" в качестве заполнитель: он будет заменён на закодированный URL документа, который требуется обработать. Этот URL может быть настоящим URL, или это может быть номер телефона, адрес электронной почты и так далее. Это локализаруемое свойство.

Пример

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

Если протокол не находится в разрешённом списке, он должен начинаться с 'ext+.

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

Обработчики также могут быть страницами расширения.

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

Совместимость с браузером

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera для Android Safari на iOS Samsung Internet
protocol_handlers Нет Нет 54 ? Нет Нет ? ? 54 ? Нет ?
dat Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?
dweb Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?
ftp Нет Нет 88 ? Нет Нет ? ? 88 ? Нет ?
gopher Нет Нет 56 ? Нет Нет ? ? 56 ? Нет ?
ipfs Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?
ipns Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?
matrix Нет Нет 90 ? Нет Нет ? ? 90 ? Нет ?
ssb Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API