Spec-Zone.ru › Web APIs

Метод Navigator: registerProtocolHandler()

Ограниченная доступность

Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в поддерживающих браузерах (или частично).

Метод Navigator позволяет веб-сайтам регистрировать возможность открытия или обработки определённых схем URL (также называемых протоколами).

Например, этот API позволяет веб-почте открывать mailto: URL-адреса, а VoIP-сайтам — tel: URL-адреса.

Для регистрации обработчика протокола веб-сайт вызывает registerProtocolHandler(), передавая в него регистрируемый протокол и шаблон URL.

При активации ссылки, использующей зарегистрированный протокол, браузер вставит href из активированной ссылки в шаблон URL, предоставленный во время регистрации обработчика, и перенаправит текущую страницу на полученный URL.

Браузер может попросить пользователя подтвердить, что он хочет разрешить странице обрабатывать протокол, либо при регистрации протокола, либо при активации ссылки.

Синтаксис

registerProtocolHandler(scheme, url)

Параметры

scheme

Строка, содержащая схему протокола, который сайт хочет обрабатывать.

Это может быть пользовательская схема, в этом случае имя схемы:

  • Начинается с web+
  • Содержит по крайней мере одну букву после префикса web+
  • Содержит только строчные буквы ASCII.

В противном случае схема должна быть одной из следующих:

  • bitcoin
  • ftp
  • ftps
  • geo
  • im
  • irc
  • ircs
  • magnet
  • mailto
  • matrix
  • mms
  • news
  • nntp
  • openpgp4fpr
  • sftp
  • sip
  • sms
  • smsto
  • ssh
  • tel
  • urn
  • webcal
  • wtai
  • xmpp
url

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

URL обработчика должен использовать схему https и иметь тот же происхождение, что и веб-страница, которая пытается зарегистрировать обработчик.

Значение результата

None (undefined).

Исключения

SecurityError DOMException

Регистрация заблокирована браузером. Это может произойти, если:

  • Зарегистрированная схема (протокол) некорректна, например, схема, которая сама обрабатывается браузером (https:, about:, и т.д.)
  • Происхождение URL обработчика не соответствует происхождению страницы, вызывающей этот API.
  • Схема URL обработчика не https.
SyntaxError DOMException

Отсутствует заполнитель %s в URL обработчика.

Примеры

Регистрация обработчика для протокола mailto

Веб-страницы часто содержат ссылки на ресурсы с использованием не-https протоколов. Примером является протокол mailto:. Авторы веб-страниц могут использовать mailto ссылку, когда им нужно предоставить удобный способ отправки электронного письма напрямую с веб-страницы:

<a href="mailto:webmaster@example.com">Web Master</a>

При активации ссылки браузер должен запустить стандартное приложение для обработки электронной почты. Это можно рассматривать как обработчик протокола на уровне операционной системы.

Веб-обработчики протоколов позволяют веб-приложениям также участвовать в этом процессе. Веб-приложение электронной почты по адресу mail.example.org может зарегистрировать обработчик mailto с помощью такого кода:

navigator.registerProtocolHandler("mailto", "https://mail.example.org/?to=%s");

После этого, когда пользователь щелкнет по mailto ссылке на любом сайте, браузер (возможно, после запроса подтверждения) перейдёт на https://mail.example.org/?to=mailto:webmaster@example.com. Эта страница может проанализировать параметр URL для извлечения адреса и использовать его для инициализации электронной почты.

Регистрация обработчика для пользовательского протокола

В этом примере страница регистрирует обработчик для протокола web+burger с помощью такого кода:

navigator.registerProtocolHandler(
  "web+burger",
  "https://burgers.example.org/?burger=%s",
);

Впоследствии пользователь посещает страницу, содержащую ссылку:

<a href="web+burger:cheeseburger">cheeseburger</a>

Если пользователь активирует ссылку web+burger, браузер перейдёт (возможно, после запроса подтверждения) на https://burgers.example.org/?burger=web+burger:cheeseburger.

Спецификации

Спецификация
HTML
# custom-handlers

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
registerProtocolHandler
13Начиная с Chrome 77, параметр URL принимает только URL-адреса http или https.
79 2 11.6 No No 4 No No No No
scheme_parameter_bitcoin 28 79 2 15 No No 4 No No No No
scheme_parameter_cabal 86 86 No 72 No No No No No No No
scheme_parameter_dat 86 86 No 72 No No No No No No No
scheme_parameter_did 86 86 No 72 No No No No No No No
scheme_parameter_dweb 86 86 No 72 No No No No No No No
scheme_parameter_ethereum 86 86 No 72 No No No No No No No
scheme_parameter_ftp No No 98 No No No 98 No No No No
scheme_parameter_ftps No No 98 No No No 98 No No No No
scheme_parameter_geo 30 79 2 17 No No 4 No No No No
scheme_parameter_hyper 86 86 No 72 No No No No No No No
scheme_parameter_im 30 79 2 17 No No 4 No No No No
scheme_parameter_ipfs 86 86 No 72 No No No No No No No
scheme_parameter_ipns 86 86 No 72 No No No No No No No
scheme_parameter_irc 15 79 2 11.6 No No 4 No No No No
scheme_parameter_ircs 30 79 2 17 No No 4 No No No No
scheme_parameter_magnet 30 79 2 17 No No 4 No No No No
scheme_parameter_mailto 13 79 2 11.6 No No 4 No No No No
scheme_parameter_matrix 92 92 90 78 No No 90 No No No No
scheme_parameter_mms 13 79 2 11.6 No No 4 No No No No
scheme_parameter_news 13 79 2 11.6 No No 4 No No No No
scheme_parameter_nntp 13 79 2 11.6 No No 4 No No No No
scheme_parameter_openpgp4fpr 42 79 2 29 No No 4 No No No No
scheme_parameter_sftp No No 98 No No No 98 No No No No
scheme_parameter_sip 30 79 2 17 No No 4 No No No No
scheme_parameter_sms 13 79 2 11.6 No No 4 No No No No
scheme_parameter_smsto 26 79 2 15 No No 4 No No No No
scheme_parameter_ssb 86 86 Нет 72 Нет Нет Нет Нет Нет Нет Нет
scheme_parameter_ssh 41 79 2 28 Нет Нет 4 Нет Нет Нет Нет
scheme_parameter_tel 13 79 2 11.6 Нет Нет 4 Нет Нет Нет Нет
scheme_parameter_urn 13 79 2 11.6 Нет Нет 4 Нет Нет Нет Нет
scheme_parameter_webcal 13 79 2 11.6 Нет Нет 4 Нет Нет Нет Нет
scheme_parameter_wtai 31 79 2 18 Нет Нет 4 Нет Нет Нет Нет
scheme_parameter_xmpp 30 79 2 17 Нет Нет 4 Нет Нет Нет Нет
secure_context_required 80 79 62 67 Нет Нет Нет Нет Нет Нет Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler

Spec-Zone.ru

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