Rejestrowanie niestandardowego modułu obsługi protokołów

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.