딥 링크 지원

버전 1.2.0부터 Navigation 3은 DeepLinkRequest DeepLinkMatcher 클래스를 사용하여 앱의 대상으로 딥 링크를 지원합니다.

앱에서 딥 링크를 지원하려면 다음 단계를 완료하세요.

  1. AndroidManifest.xml에서 인텐트 필터를 정의 하여 앱에서 처리할 수 있는 URI를 지정합니다.
  2. DeepLinkMatcher 인스턴스를 만듭니다. 수신 요청을 탐색 키에 매핑합니다.
  3. 활동의 onCreate 또는 onNewIntent 메서드에서 수신 요청을 일치 시키고 백 스택을 적절히 업데이트합니다.

DeepLinkRequest 만들기

DeepLinkRequest는 수신 딥 링크를 나타냅니다. 인텐트 작업 또는 MIME 유형과 같은 추가 정보가 포함된 DeepLinkUri 및 선택적 RequestExtras가 포함되어 있습니다.

DeepLinkRequest 추가 제공

딥 링크와 관련된 추가 정보를 저장하려면 RequestExtras 클래스를 사용하세요. 추가 정의 및 인스턴스화를 유형 안전하게 만들려면 라이브러리에서 RequestExtrasKey 인터페이스 및 requestExtras DSL을 제공합니다.

또한 라이브러리는 두 개의 추가 키와 연결된 도우미를 제공합니다.

  • MimeTypeExtrasKey: MIME 유형 String을 저장하는 데 사용됩니다.
  • ActionExtrasKey (Android 전용): Intent의 작업 String을 저장하는 데 사용됩니다.

자체 맞춤 추가를 정의하려면 유형화된 일반으로 RequestExtrasKey 인터페이스를 구현합니다.

emptyRequestExtras()를 사용하여 빈 인스턴스를 구성하거나 + (plus) 및 - (minus) 연산자를 사용하여 추가를 결합할 수도 있습니다.

Intent에서 DeepLinkRequest 만들기

Android에서는 Intent에서 직접 DeepLinkRequest를 만들 수 있습니다. 이 방법으로 구성하면 DeepLinkRequest가 다음과 같이 빌드됩니다.

  • uri는 인텐트의 data 필드에서 복사됩니다.
  • null이 아닌 경우 MIME 유형 및 작업 추가는 상응하는 인텐트 필드에서 설정됩니다.
  • null이 아닌 값이 있는 모든 intent.extrasDeepLinkRequest.IntentExtrasKeySavedState로 저장됩니다.
  • extras 매개변수를 사용하여 제공된 추가 추가가 추가됩니다.

DeepLinkMatcher는 수신 DeepLinkRequest 인스턴스를 앱의 백 스택에 추가할 수 있는 탐색 키에 매핑합니다. Navigation 3 은 세 가지 기본 제공 일치자를 제공합니다. 패턴 기반 URI 일치를 위한 UriDeepLinkMatcher, 기본 링크를 위한 StaticKeyDeepLinkMatcher, 합성 백 스택 빌드를 위한 BackStackMatcher입니다. 라이브러리는 기본 제공 일치자로 처리되지 않는 사용 사례를 위한 맞춤 일치자도 지원합니다.

자세한 내용은 DeepLinkMatchers 만들기를 참고하세요.

인텐트 필터 추가하기

딥 링크를 사용하여 활동을 시작하려면 앱의 AndroidManifest.xml에서 일치하는 <intent-filter> 요소를 정의해야 합니다. 자세한 내용은 수신 링크의 인텐트 필터 추가하기를 참고하세요.

수신 요청 일치

`DeepLinkMatcher` 인스턴스를 만든DeepLinkMatcher 활동에서 수신 요청을 일치시킬 수 있습니다.

수신 요청을 일치시키려면 다음 단계를 완료하세요.

  1. DeepLinkMatcher 인스턴스를 인스턴스화 합니다.
  2. 명시적으로 또는 멀티바인딩을 사용하여 모든 DeepLinkMatcher 인스턴스를**대조** 합니다.
  3. 수신 Intent에서 DeepLinkRequest만듭니다.
  4. 모든 일치자에 대해 요청을 일치 시키고 가장 적합한 일치자를 찾습니다.
  5. 일치 결과에서 백 스택을 만듭니다.