Установка обработчика службы для схемы URI с веб-страницы
при доступе к почте Google или календарю Google из Chrome в адресной строке появляется маленький значок, позволяющий установить пользовательский обработчик службы для схемы URI (отмечен красным квадратом на рисунке).
подсказка для значка: This page wants to install a service handler
. Когда я нажимаю значок и разрешаю Google Mail обрабатывать mailto:
ссылки, все mailto:
ссылки открываются в Chrome.
можно ли создать веб-страницу, которая сможет установить пользовательский обработчик для моего пользовательского URI схема так же, как Google Mail?
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
вот некоторые полезные ссылки: