커스텀 프로토콜 핸들러 등록

Chrome 13에 최종적으로 navigator.registerProtocolHandler가 포함됩니다. 이 API를 사용하면 웹 앱이 스스로를 특정 프로토콜의 핸들러로 등록할 수 있습니다. 예를 들어 사용자는 "mailto"를 처리하도록 애플리케이션을 선택할 수 있습니다. 링크를 클릭합니다.

다음과 같은 프로토콜 스키마를 등록합니다.

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

첫 번째 매개변수는 프로토콜입니다. 두 번째는 이 스키마를 처리해야 하는 애플리케이션의 URL 패턴입니다. 패턴에는 '%s'가 포함되어야 합니다. 를 데이터의 자리표시자로 사용해야 하며 프로토콜을 등록하려고 하는 앱과 동일한 출처에 있어야 합니다. 사용자가 액세스를 승인하면 앱, 다른 사이트 등에서 이 링크를 사용할 수 있습니다.

<a href="web+mystuff:some+data">Open in "My App"</a>

이 링크를 클릭하면 http://example.com/rph?q=web%2Bmystuff%3A:some%20dataGET 요청이 실행됩니다. 따라서 q 매개변수를 파싱하고 수동으로 프로토콜에서 데이터를 제거해야 합니다.

Firefox에는 FF3 이후로 navigator.registerProtocolHandler가 구현되어 있습니다. Chrome 구현의 한 가지 차이점은 맞춤 프로토콜입니다. 위의 예와 같이 'web+' 접두사를 붙여야 합니다. 다음 프로토콜은 'web+' 접두사: 'mailto', 'mms', 'nntp', 'rtsp', 'webcal'.

이 API에 대한 자세한 내용은 MDN 문서를 참조하세요.