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

Chrome 13 наконец-то включает navigator.registerProtocolHandler . Этот API позволяет веб-приложениям регистрироваться в качестве возможных обработчиков определенных протоколов. Например, пользователи могут выбрать ваше приложение для обработки ссылок «mailto».

Зарегистрируйте схему протокола, например:

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

Первый параметр — это протокол. Второй — это шаблон URL-адреса приложения, которое должно обрабатывать эту схему. Шаблон должен включать «%s» в качестве заполнителя для данных и должен иметь то же происхождение, что и приложение, пытающееся зарегистрировать протокол. Как только пользователь одобрит доступ, вы сможете использовать эту ссылку в своем приложении, на других сайтах и ​​т. д.:

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

При нажатии на эту ссылку выполняется запрос GET к http://example.com/rph?q=web%2Bmystuff%3A:some%20data . Таким образом, вам придется проанализировать параметр q и вручную удалить данные из протокола.

Стоит отметить, что в Firefox реализован navigator.registerProtocolHandler начиная с FF3. Одно из отличий в реализации Chrome касается пользовательских протоколов. Они должны иметь префикс «web+», как показано в примере выше. Следующие протоколы не нуждаются в префиксе «web+»: «mailto», «mms», «nntp», «rtsp», «webcal».

Более подробную информацию об этом API можно найти в статье MDN .