딥링크의 작동 원리
딥링크는 URL 형태로 제공되며, 이 URL을 클릭하면 앱의 특정 부분으로 직접 이동할 수 있습니다. 웹에서 특정 페이지의 링크를 클릭해 바로 그 페이지로 이동하는 것과 유사한 원리입니다. 하지만 딥링크는 앱 내부의 특정 화면으로 직접 이동한다는 점에서 차이가 있습니다.
딥링크의 종류
- 딥링크 : 앱이 이미 설치되어 있어야만 작동하는 링크입니다. 앱이 없으면, 링크를 눌러도 아무 일도 일어나지 않습니다.
- 웹 URL 딥링크 : 앱이 설치되어 있지 않으면 웹사이트로 이동하는 링크입니다. 이 방식으로, 앱이 없어도 내용을 볼 수 있습니다.
- 앱 링크 : 가장 진화된 형태의 딥링크로, 앱이 있으면 바로 앱으로, 없으면 웹사이트로 이동합니다.
딥링크의 장점
- 사용자 경험 개선: 사용자는 검색이나 여러 단계의 탐색 없이도 원하는 콘텐츠에 바로 접근할 수 있습니다.
- 효율적인 마케팅: 마케팅 캠페인에서 딥링크를 활용하면, 사용자를 앱의 특정 프로모션 페이지나 제품에 직접 연결할 수 있습니다.
- 콘텐츠 공유 용이: 사용자가 앱 내 콘텐츠를 쉽게 공유할 수 있게 해줍니다.
딥링크 구현하기
<activity
android:name="com.example.android.GizmosActivity"
android:label="@string/title_gizmos" >
<intent-filter android:label="@string/filter_view_http_gizmos">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- "http://www.example.com/gizmos"로 시작하는 URI를 인식합니다. -->
<data android:scheme="http"
android:host="www.example.com"
android:pathPrefix="/gizmos" />
<!-- pathPrefix 앞에 "/"가 필요합니다 -->
</intent-filter>
<intent-filter android:label="@string/filter_view_example_gizmos">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- "example://gizmos"로 시작하는 URI를 인식합니다.. -->
<data android:scheme="example"
android:host="gizmos" />
</intent-filter>
</activity>
안드로이드 앱의 'AndroidManifest.xml' 파일에 딥링크를 위한 인텐트 필터를 추가하여, 앱이 특정 URL을 인식하게 할 수 있습니다. 이 URL 패턴이 호출될 때, 앱의 특정 Activity를 시작하도록 설정합니다.
- 인텐트 필터 설정: 앱의 'AndroidManifest.xml' 파일 내에, 열고자 하는 Activity에 대해 '<intent-filter>'를 추가합니다. 이 필터 내에 '<action>', '<category>', 그리고 '<data>' 요소를 정의하여, 앱이 처리할 URL 형식을 지정합니다.
- 데이터 처리: 사용자가 딥링크를 통해 앱에 들어왔을 때, 해당 Activity는 인텐트에서 데이터를 추출하고 이를 기반으로 적절한 작업을 수행해야 합니다. 예를 들어, 사용자가 특정 제품 페이지를 열기를 원할 경우, 해당 제품의 ID를 인텐트에서 추출하여 해당 제품 정보를 표시합니다.
참고문서
https://developer.android.com/training/app-links?hl=ko
https://developer.android.com/training/app-links/deep-linking?hl=ko
'Android > 기본' 카테고리의 다른 글
[Android] 앱 아키텍처 가이드 (0) | 2024.11.12 |
---|---|
[Android]안드로이드 스튜디오 로그(Log) 가이드 (0) | 2024.11.10 |
[Android] Android 자동 테스트 작성 및 유형 (0) | 2024.09.06 |
[Android] 발생할 수 있는 Exception종류와 처리 방법 (1) | 2024.06.14 |
[Android] MVVM 패턴(Model-View-ViewModel) (1) | 2024.03.14 |
[Android] Retrofit2와 RxJava의 통신 실패 관리 (0) | 2024.03.13 |
[Android] Activity Lifecycle 액티비티 생명주기 (0) | 2024.03.08 |
[Android] App components 앱 구성요소 (0) | 2024.03.06 |