Обработчики протоколов
| Тип | 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