본문 바로가기
안드로이드

[Android] 딥링크(Deep Link) 파헤치기

by 디지털노마더 2020. 12. 9.

딥링크(Deep Link)란?

 : 특정 콘텐츠(페이지)로 바로 연결되는 링크를 말합니다.

 

예를 들어 안드로이드 Developer 사이트 주소는 아래와 같습니다.

https://developer.android.com/

 

하지만 안드로이드 스튜디오 설치 안내 페이지로 바로 이동하는 링크를 전달하고 싶다면

아래의 링크와 같이 바로 이동가능한 딥링크를 이용하는 것입니다.

https://developer.android.com/studio/install

 

딥링크는 일반적으로 아래와 같이 스키마(scheme) 호스트(host) 및 경로(path)의 두 부분으로 나뉘어져 있습니다.

{scheme}://{host_path}

 

모바일에서는 2가지의 경우의 수가 존재합니다.

 

첫째. 모바일 앱이 설치되어 있는 경우, '딥링크' 클릭 시 앱을 바로 실행

둘째. 앱이 미설치 된 경우, 구글 플레이스토어 자동 실행하여 앱 설치 페이지로 이동

 

Deferred Deep Link(지연된 딥링크)를 이용하면 위 2가지 경우의 수를 처리가 가능합니다.

deferred(지연된) 딥링크는 앱을 다운로드하지 않은 사용자에게도 해당 링크의 컨텐츠로 바로 이동할 수 있도록 해줍니다.

웹에서 딥링크를 클릭했을 때 이미 앱을 다운받은 사용자의 경우에는 기존의 딥링크와 동일하게 바로 해당 컨텐츠로 이동합니다.

 

출처 : develog of ShinJeKim 기술블로그

 

  Deep Links  App Links
Intent URL scheme http, https, 커스텀 스키마 http와 https만 가능
Intent action 모두 가능 android.intent.action.VIEW만 가능
Intent category 모두 가능 android.intent.category.BROWSABLE과 android.intent.category.DEFAULT만 가능
Link verification 필요없음 Digital Asset Links 필요
User experience 사용자가 어떤 앱을 사용할 것인지 disambiguation dialog에서 선택할 수 있음 dialog없음. 해당 앱이 바로 열리거나 웹사이트로 이동함
Compatibility 모든 안드로이드 버전에서 가능 안드로이드 6.0 이상에서 가능

 

아래는 실제로 서비스에 적용한 사례를 예시로 든 사항이다.

 

▶ 웹에서 보여주는 딥링크 URL 규칙은 아래와 같다.

 패키지명.MainActivity/#Intent;package=패키지명;scheme=https;end

 

앱에서는 아래와 같은 속성을 추가

Android Manifest.xml에 <intent-fillter> 속성을 추가해준다.

    <activity ...>

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" android:host="www.example.com" />
            <data android:scheme="https" />
        </intent-filter>

    </activity>
    

 

참고자료

 

댓글