Chrome 13 zawiera w końcu navigator.registerProtocolHandler
. Ten interfejs API umożliwia aplikacjom internetowym rejestrowanie się jako możliwe moduły obsługi konkretnych protokołów. Użytkownicy mogą na przykład wybrać Twoją aplikację do obsługi linków „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ć „%s” jako miejsce zarezerwowane na dane i musi być w tym samym źródle co aplikacja, która próbuje 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 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 3 przeglądarka Firefox ma implementowany navigator.registerProtocolHandler
. Jedną z różnic w implementacji w Chrome są niestandardowe protokoły. 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.