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 .