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

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+' 접두사를 붙여야 합니다. 'mailto', 'mms', 'nntp', 'rtsp', 'webcal' 등의 프로토콜에는 'web+' 접두사가 필요하지 않습니다.

이 API에 대한 자세한 내용은 MDN 도움말을 참조하세요.