W Chrome 13 dodaliśmy navigator.registerProtocolHandler
. Ten interfejs API umożliwia aplikacjom internetowym rejestrowanie się jako możliwe moduły obsługi określonych protokołów. Użytkownicy mogą na przykład wybrać aplikację, która ma obsługiwać linki „mailto”.
Zarejestruj schemat protokołu, np.:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Pierwszy parametr to protokół. Drugim jest wzorzec adresu URL aplikacji, która ma obsługiwać ten schemat. Wzorzec powinien zawierać symbol „%s” jako obiekt zastępczy danych i musi być z tego samego źródła co aplikacja próbująca zarejestrować protokół. Gdy użytkownik zatwierdzi dostęp, możesz użyć tego linku w aplikacji, na innych stronach itp.:
<a href="web+mystuff:some+data">Open in "My App"</a>
Kliknięcie tego linku powoduje wysłanie prośby GET
do usługi http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Dlatego musisz przeanalizować parametr q
i ręcznie usunąć dane z protokołu.
Warto zauważyć, że od wersji FF3 przeglądarka Firefox została wdrożona w przeglądarce navigator.registerProtocolHandler
. Jedna z różnic w implementacji Chrome dotyczy protokołów niestandardowych. Muszą one mieć prefiks „web+”, jak w przykładzie powyżej. W przypadku tych protokołów nie trzeba używać przedrostka „web+”: „mailto”, „mms”, „nntp”, „rtsp”, „webcal”.
Więcej informacji o tym interfejsie API znajdziesz w tym artykule w MDN.