딥링크(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(지연된) 딥링크는 앱을 다운로드하지 않은 사용자에게도 해당 링크의 컨텐츠로 바로 이동할 수 있도록 해줍니다.
웹에서 딥링크를 클릭했을 때 이미 앱을 다운받은 사용자의 경우에는 기존의 딥링크와 동일하게 바로 해당 컨텐츠로 이동합니다.
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>
참고자료
'안드로이드' 카테고리의 다른 글
[Kotlin] 싱글턴 패턴 (0) | 2021.01.21 |
---|---|
[Kotlin] 코틀린 익스텐션 사용하기 (kotlin-android-extensions) (0) | 2021.01.20 |
WebView에서 외부 브라우저 새 창 띄우기 방법 (0) | 2020.11.14 |
Android Studio 4.1.1 업데이트 이후 오류 발생 및 해결책 (0) | 2020.11.14 |
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19 - 오류 해결책 (Feat. Android Query) (0) | 2020.10.30 |
댓글