DeepLink, AppLink

DeepLink

특정 URL을 클릭하면 해당 URL에 매핑된 앱 내의 특정화면으로 바로 이동

Intent와 Manifest 파일에 필터를 사용해 처리함

// Manifest 파일에 인텐트 필터 추가
<activity android:name=".ProductActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <!-- 딥링크 URL 패턴 설정 -->
        <data
            android:host="myapp"
            android:scheme="myapp"
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

// ProductActivity 클래스에서 딥링크 처리
class ProductActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // 딥링크로부터 전달받은 데이터 추출 및 처리
        val productId = intent.data?.lastPathSegment
       
    }
}

AppLink

웹 페이지에서 특정 링크를 클릭하면 해당 앱으로 이동하고 그렇지 않으면 웹페이지가 열림

Manifest에 meta data 태그와 함께 추가작업을 해줘야함

// AndroidManifest.xml 파일에 Digital Asset Links 파일 설정 추가
<application ...>
    ...
    <meta-data
        android:name="asset_statements"
        android:resource="@string/digital_asset_links" />
</application>

// res/values/strings.xml 파일에 Digital Asset Links 설정 추가 (예시)
<string name="digital_asset_links">
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "web",
      "site": "https://example.com"
    }
  }
]
</string>

딥링크는 주로 외부 콘텐츠에서 특정 화면으로 직접 연결할 때 사용되고, 안드로이드 Intent 시스템을 활용하여 처리된다. 반면에 앱 링크는 웹 사이트와 모바일 앱 간의 연결을 제공하는데 중점을 두며 Manifest뿐 아니라 Digital Asset Links 설정 등을 사용하여 구현된다.

profile
클린코드와 UX를 생각하는 비즈니스 드리븐 소프트웨어 엔지니어입니다.

0개의 댓글