사용자 커스텀 프로토콜 만들기
가끔 보면 브라우저에서 "무슨무슨 앱으로 여시겠습니까?" 하면서 컴퓨터에 깔려있는 프로그램을 여는 경우가 있다.
간단하게 알아보려면 브라우저 콘솔에
window.open("calculator://");
를 실행해 보자
이렇게 뜨면서 계산기를 열겠냐고 한다. 그럼 계산기가 열린다.
이게 어떻게 구현되어있는거냐 하고 조사해보니
레지스트리에 등록하는 거였다.
HKEY_CLASSES_ROOT 에 들어가보자
쭈우우욱 내려가다보면 calculator 라는 녀석이 보인다.
보면 안에 URL:calculator 와 URL Protocol 이라고 써있는 것이 보인다.
딱봐도 이 녀석들이 관여되어 있는 것 같은데,,,,,,, 솔직히 저거 말고는 텅텅 비어있어가지고 뭘 어떻게 한 건지 모르겠다.
그래서 다른 예시를 살펴보았다.
window.open("kakaoopen://");
이 녀석이다.
이렇게 구현되어있다.
똑같이 URL Protocol 이 있는 것은 보인다.
shell, open 에는 별다른 내용이 없다.
command에
"프로그램주소" "%1"
라고 적혀있다.
지금까지 원래 있던 애들 바탕으로 분석을 해보았다.
직접 만들어보자!!!
이를 활용해서 한번 디스코드 프로토콜을 만들어보자
window.open("discordopen");
일단 실행해보면 없어서 뭐 없다고 나온다.
HKEY_CLASSES_ROOT 에 우클릭 해서 새로 만들기 -> 키 를 통해 discordopen을 만들고
discordopen 에다가 새로 만들기 해서 아래 사진처럼 쭉쭉 만들면 된다.
discordopen 에는 kakaoopen 에 있던 것 처럼 URL Protocol 이름을 만들어 놓자.
새로 만들기 -> 문자열 값 을 눌러서 하나 만들고
URL Protocol 이라고 해놓자.
그리고 command 에는 아까 봤던 것처럼
"C:\ProgramData\js\Discord\app-1.0.9016\Discord.exe" "%1"
라고 해놓는다.
그리고 레지스트리를 수정했으니 컴퓨터를 한번 다시 시작해주자.
그리고 이제???
window.open("discordopen://");
^~^!!!!!
잘된다~
근데 지금 보니까 Discord:// 라고 이미 있다 엉엉..