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

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.