Chrome 13 zawiera w końcu navigator.registerProtocolHandler
. Ten interfejs API pozwala aplikacjom internetowym rejestrować się jako możliwe moduły obsługi konkretnych protokołów. Na przykład użytkownicy mogą wybrać Twoją aplikację do obsługi linków „mailto”.
Zarejestruj schemat protokołu, taki jak:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Pierwszy parametr to protokół. Drugi to wzorzec adresu URL aplikacji, która powinna obsługiwać ten schemat. Wzorzec powinien zawierać „%s” jako zmienną dla danych i musi być w tym samym źródle co aplikacja próbująca zarejestrować protokół. Gdy użytkownik zatwierdzi dostęp, możesz używać tego linku w aplikacji, na innych stronach itp.:
<a href="web+mystuff:some+data">Open in "My App"</a>
Kliknięcie tego linku spowoduje wysłanie prośby o GET
do http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Z tego względu musisz przeanalizować parametr q
i ręcznie usunąć dane z protokołu.
Warto zauważyć, że od FF3 w przeglądarce Firefox została zaimplementowana navigator.registerProtocolHandler
. Jedyna różnica w implementacji Chrome dotyczy protokołów niestandardowych. Należy je poprzedzić ciągiem „web+”, tak jak w przykładzie powyżej. Te protokoły nie wymagają prefiksu „web+”: „mailto”, „mms”, „nntp”, „rtsp”, „webcal”.
Więcej informacji o tym interfejsie API znajdziesz w artykule w MDN.