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

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.