W Chrome 13 dodaliśmy navigator.registerProtocolHandler
. Ten interfejs API pozwala aplikacjom internetowym rejestrować się jako możliwe moduły obsługi określonych protokołów. Na przykład użytkownicy mogą wybrać aplikację, która będzie obsługiwać „mailto”. .
Zarejestruj schemat protokołu, taki jak:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Pierwszym z nich jest protokół. Drugi to wzorzec adresu URL aplikacji, która powinna obsługiwać ten schemat. Wzorzec powinien zawierać parametr „%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 spowoduje wysłanie żądania 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 być poprzedzone ciągiem „web+”, jak widać w przykładzie powyżej. Te protokoły nie wymagają „web+” prefiks: „mailto”, „mms”, „nntp”, „rtsp”, „webcal”.
Więcej informacji o tym interfejsie API znajdziesz w tym artykule.