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

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 도움말을 참고하세요.