딥링크
홈페이지가 아닌 홈페이지 내에 특정 화면에 한 번에 도달할 수 있는 링크
연결되거나 검색되어 들어간 사이트의 최상위 페이지 즉, 홈페이지를 제외한 나머지 모든 웹 페이지로 가는 하이퍼링크(hyperlink). 딥(deep)은 한 사이트에 있는 웹 페이지의 계층 구조 내에 있는 페이지의 깊이를 가리키는 말로 계층 구조 내의 최상위 페이지, 즉 홈페이지 아래에 있는 페이지라면 어떠한 것이라도 딥이라고 간주됩니다. [1]
딥링크의 3가지 방식
- URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용
- 앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥링크 사용
- 유니버셜 링크 (Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥링크 사용
URL 스킴의 한계
- 앱이 설치되지 않은 경우
- 두 개 이상의 앱이 myapp://에 응답하려 하는 경우 (여러 개의 앱이 같은 Scheme 사용가능)
2개의 앱이 중복된 Scheme을 가질 경우, 둘 중 하나의 딥링크는 하이재킹되어 유실될 수 있습니다. path 등까지 모두 동일한 주소를 사용한다면, Android의 경우 딥링크로 오픈할 앱 선택창이 노출되고, iOS는 가장 마지막에 설치한 앱이 자동으로 열립니다.
대안
App Link와 Universal Link는 고유한 웹사이트 주소(도메인)로 만들어지기 때문에 항상 유일합니다.
이 도메인이 이 앱의 소유자라는 것을 인증해줘야 제대로 동작합니다.
딥링크 사용 예제
네이버 지도앱 연동
nmap://search?query=%EA%B0%95%EB%82%A8%EC%97%AD&appname=com.example.myapp
앱 콘텐츠 딥 링크 만들기
AndroidManifest.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <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" /> <data android:scheme="http" android:host="www.example.com" android:pathPrefix="/gizmos" /> <!-- note that the leading "/" is required for 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" /> <!-- Accepts URIs that begin with "example://gizmos” --> <data android:scheme="example" android:host="gizmos" /> </intent-filter> </activity> | cs |
- Scheme 값: 앱 개발자가 정한 값으로 앱을 구분
- Path: 앱 내 특정 페이지를 지정
data 태그에서 Scheme가 exmaple이고 host가 gizmos 이므로 주소는 example://gizmos 가 됩니다.
참조:
[1] 한국정보통신협회 - 정보통신용어사전
https://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=040687-1
[2] Android 딥 링크 - URL Scheme
https://jaeryo2357.tistory.com/84
[3] 지도앱 연동 URL Scheme
https://guide.ncloud-docs.com/docs/naveropenapiv3-maps-url-scheme-url-scheme
[4] 앱 콘텐츠 딥 링크 만들기
https://developer.android.com/training/app-links/deep-linking?hl=ko
[5] 딥링크의 모든것(feat. App Link, Universal Link, Deferred DeepLink)
[6] 딥링크101 마케터와 개발자를 위한 딥링크 시작하기
https://www.airbridge.io/blog-ko/deeplink-101-for-marketers-and-developers
'안드로이드' 카테고리의 다른 글
[Andorid] MVVM Pattern (0) | 2023.03.07 |
---|---|
URI Scheme, AppLink, Deferred depp Link 정의 (0) | 2023.02.14 |
webView에서 window.open(), window.close() 처리 (0) | 2023.01.24 |
안드로이드 webview bridge 실습 (0) | 2022.12.20 |
안드로이드 학습 계획 (0) | 2022.11.21 |