잡동사니

Windows 환경에서 Custom Uri Scheme 활용

Vader87 2019. 9. 7. 18:00
반응형

Window 환경에서 브라우저를 통해 클라이언트 호출을 하게될 일이 생겼습니다.

다음의 방법을 이용하면 특정 URL을 이용해 Windows 환경에서 프로그램을 실행 시킬 수 있습니다.

 

Window 의 Custom URI Scheme 를 설정해 봅시다.

https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914(v=vs.85)

 

Registering an Application to a URI Scheme (Windows)

Registering an Application to a URI Scheme 07/13/2016 5 minutes to read In this article --> The About Asynchronous Pluggable Protocols article describes how to develop handlers for Uniform Resource Identifier (URI) schemes. In some cases, it may be desirab

docs.microsoft.com

아래와 같은 형식으로 HKEY_CLASSES_ROOT 안에 키 값을 생성해 줍니다. 경로는 꼭 HKEY_CLASSES_ROOT 가 아니어도 상관없지 않을까 싶습니다. 여기서 가장 상위 키 값의 이름이 URI Host 명이 됩니다. 예제의 URL은 Dev:// 로 시작하게 됩니다.

가장 상위 키에 URL Protocol 이라는 키 값을 추가해 줍니다.

가장 마지막 키인 command 안에 기본값을 편집해 실행하고자 하는 파일의 경로를 적어 줍니다. 여기서 명령줄 인수를 추가하고자 하면 경로뒤 공백을 추가하고 "%1" 을 추가해 줍니다.

 

간단하게 테스트할 html 코드와 javascript 코드를 작성합니다.

우선 버튼이 달린 간단한 html 코드 입니다.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
    </head>
    <body>
        <input type="button" name="btn1" id="connect" value="Connet">
        <script type="text/javascript" src="connect.js"></script>
    </body>
</html>

다음은 버튼을 이용해 프로그램을 실행시켜 줄 javascript 코드 입니다.

var connect = document.getElementById('connect');
connect.addEventListener('click', function()
{
    location = "Dev://customurischeme"
})

html 을 실행하고 버튼을 눌르면 다음과 같이 실행할 건지 묻는 팝업이 하나 뜹니다. 참고로 저는 chrome 브라우저를 사용해 테스트 했습니다.

열기를 눌러주면 클라이언트가 실행됩니다.

미리 명령줄 인수 값을 확인할 수 있게 준비해둔 클라이언트 입니다.

웹에서 호출한 것과 같이 dev://customurischeme/ 라는 인수 값이 찍힌 것을 알수 있습니다.

이를 이용해 웹을 통해 클라이언트를 원하는 설정 값으로 실행 할 수 있습니다.

반응형