Hybrid vs Native Apps Header. https://commons.m.wikimedia.org/wiki/File:Hybrid_vs_Native_Apps_Header_1200x628_COMPRESSED.png


앱을 개발하는 일을 하다보면 자주 듣는 요구로 '메뉴에 다른 앱을 여는 버튼을 달았으면 좋겠다'는 것이 있습니다. 비슷한 이야기로 '홈페이지에 앱의 쿠폰화면을 여는 링크를 달고 싶다'라든지 'Push 알림에서 Web 페이지를 열고 싶다'라는 것 등이 있습니다.

Web 페이지의 링크 감각으로 간단하게 할 수 있을 것 같은 생각이 들어 버립니다만, 실은 의외로 못하거나 합니다. EAP는 있습니다만.

Web 페이지의 정보는 인터넷에 있고 URL로 위치를 지정할 수 있지만, 자신이 스마트폰에서 볼 수 있는 앱 자체와 앱의 쿠폰이나 화면은 스마트폰 내에 있어, 인터넷상의 것이 아니어서 URL 같은 것이 존재하지 않습니다.

 

사용자정의 URL scheme

하지만 실제로는 Web 페이지에서 앱을 열고, Push 알림에서 Web 페이지를 열거나 앱에서 다른 앱을 여는 것은 기술적으로 가능합니다.

Web 페이지의 URL은 'http:' 또는 'https:'이 붙어있는 것을 볼 수 있는데, 이것은 URL scheme이라는 정보입니다. 'ftp:'나 'mailto:', 'tel:' 등도 있습니다.

이 URL scheme에 의해 어떤 앱을 시작할지 여부를 결정할 수 있다고 생각하면 됩니다. 예를 들어 'http:'와 'https:'라고 적혀 있으면 브라우저를 실행하고 'mailto:'라고 적혀 있으면 메일프로그램을 실행합니다.

앱을 개발할 때 앱을 실행하는 사용자정의 URL scheme을 설정할 수 있습니다. 예를 들어 appo라는 앱을 개발할 때 사용자정의 URL로 'appo:'라고 설정해두면, appo가 설치된 단말기에서 'shinokichi://'라는 Web 페이지 같은 링크로 appo를 실행시킬 수 있게 됩니다.


딥링크

사용자정의 URL scheme을 사용하여 앱을 링크로 부팅시킬 수는 있지만, 이것만으로는 그냥 앱이 실행될 뿐이므로 '앱 내의 쿠폰화면을 연다'라고 요구를 만족시킬 수 없습니다.

딥링크라는 것은 Web 사이트의 TOP이 아닌 하위계층에 있는 콘텐츠에 직접 링크하는 것을 의미하기도 하지만, 뿐만 아니라 앱의 사용자정의 URL scheme을 사용하여 앱 시작화면 이외의 콘텐츠를 직접 열 수 있게 할 수도 있는 것을 딥링크라고 합니다.

앱에 사용자정의 URL scheme을 설정하면 그 후에 Web 페이지의 URL처럼 취급할 수 있습니다.


URL scheme의 중복 문제

중복 문제를 어떻게 처리할지 정해져 있지 않습니다. 이것은 사용자정의 URL scheme의 가장 큰 단점이라고 해도 좋을지도 모릅니다.

사용자정의 URL scheme을 사용하면 어떤 동작이 될지는 단말기에 어떤 앱이 설치되어 있는지에 따라 결정됩니다.

참고로 iOS의 경우, 11부터 먼저 설치되어 있는 앱이 실행하도록 되어있는 것 같습니다.

출처 참조 번역
· Wikipedia
· アプリにリンクしたい的な話
https://www.lanches.co.jp/blog/10928

Posted by 말총머리
,