Подтвердить что ты не робот

Установите обработчик сервиса для схемы URI с веб-страницы.

При обращении к Google Mail или календарю Google из Chrome в адресной строке появляется маленький значок, позволяющий установить пользовательский обработчик сервиса для схемы URI (отмечен красным квадратом на картинке).

Icon for installing custom service handler

Подсказка для значка: This page wants to install a service handler. Когда я нажимаю значок и разрешаю Google Mail обрабатывать ссылки mailto:, все ссылки mailto: открываются в Chrome.

Возможно ли создать веб-страницу, которая сможет установить пользовательский обработчик для моей настраиваемой схемы URI, как это делает Google Mail?

4b9b3361

Ответ 1

Для Chrome (13+), Firefox (3.0+) и Opera (11.60+) можно зарегистрировать веб-приложение в качестве обработчика службы для пользовательской схемы URI с использованием JavaScript API:

window.navigator.registerProtocolHandler(protocol, uri, title);
  • protocol - это протокол, который сайт хочет обработать, заданный как строка.
  • uri - это URI для обработчика в виде строки. Вы можете указать "% s", чтобы указать, куда вставить экранированный URI обрабатываемого документа.
  • title - это заголовок обработчика, представленный пользователю как строка.

В частности, для Chrome существует ограничение, которое не позволяет использовать пользовательские схемы, которые не начинаются с префикса web+ (кроме стандартных: mailto, mms, nntp, rtsp и webcal). Поэтому, если вы хотите зарегистрировать свое веб-приложение в качестве обработчика службы, как это делает GMail, вы должны написать что-то вроде этого:

navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail");

или

navigator.registerProtocolHandler("web+myscheme", "https://www.example.com/?uri=%s", "My Cool App");

Обратите внимание на шаблон URI, он должен содержать %s, который будет заменен фактическим URI кликов пользователя ссылки. Например:

<a href="web+myscheme:some+data">Open in "My Cool App"</a>

вызовет запрос GET на http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data

Вот несколько полезных ссылок: