# androidx.navigation3.runtime.deeplink

Common/AllAndroid/JVM

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` | A filter for a deep link, such as a mimeType. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` | The base Key associated with a value of type `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey`. | Cmn |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatchResult` | Result returned when a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher` successfully matches a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher` | A `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` that builds a back stack when match succeeds. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` | Represents a deep link that can be deep linked into when matched with a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult` | The class that is returned when a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` matches with a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` | Represents a requested deep link. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkSerializer` | A `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html` abstract implementation that encodes and decodes `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkSerializer` as a String. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkUri` | see [android.net.Uri](https://developer.android.com/reference/android/net/Uri) | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` | A map-like class that stores key-value pairs of `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` to its associated value for use as `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#extras()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope` | Scope provided to the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#requestExtras(kotlin.Function1)` dsl builder. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/StaticKeyDeepLinkMatcher` | A `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` that matches based on a list of `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` and if all filters match, returns the input `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/StaticKeyDeepLinkMatcher#(kotlin.Any,kotlin.collections.List)` in the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/UriDeepLinkMatcher` | A `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` implementation that matches based on `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkUri`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/UriMatchResult` | The class that is returned when a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/UriDeepLinkMatcher` matches with a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/WrappedMatchResult` | A `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult` implementation that wraps another MatchResult. | Cmn |

## Objects

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Companion` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.MimeTypeExtrasKey` | The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` for the mimeType stored inside the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` returned by `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#mimeTypeExtra(kotlin.String)`. | Cmn |

## Annotations

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasDsl` |   | Cmn |

## Type aliases

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkUri` | see [android.net.Uri](https://developer.android.com/reference/android/net/Uri) | android |

## Top-level functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkUri` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#DeepLinkUri(kotlin.String)(uriString: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#DeepLinkUri(kotlin.String)` which parses the given encoded URI string. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#emptyRequestExtras()()` Returns an empty `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras`. | Cmn |
| `inline https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#requestExtras(kotlin.Function1)(builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope` to build a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` for a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`. | Cmn |

## Extension functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).actionExtra(kotlin.String)(action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Returns a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` that stores the provided `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).actionExtra(kotlin.String)` with the key `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).ActionExtrasKey()`. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Companion.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher.Companion).actionFilter(kotlin.String)(action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` that filters a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` with the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher.Companion).actionFilter(kotlin.String)`. | android |
| `operator https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).invoke(android.content.Intent,androidx.navigation3.runtime.deeplink.RequestExtras)(intent: https://developer.android.com/reference/android/content/Intent.html, extras: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras)` Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` with an `https://developer.android.com/reference/android/content/Intent.html`. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher<T, K>` | `<T : K, K : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher<T, https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult<T>>.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher).withBackStack(kotlin.Function1)( backStackBuilder: (matchResult: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult<T>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<K> )` Returns a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher` which wraps this `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` to build a back stack upon matching. | Cmn |

## Extension properties summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).ActionExtrasKey()` The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` for the Action stored inside the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` returned by `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).actionExtra(kotlin.String)`. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey<https://developer.android.com/reference/android/os/Bundle.html>` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).IntentExtrasKey()` The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` for the `https://developer.android.com/reference/android/content/Intent.html#extras` stored in `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#extras()` when the Request is created with `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).invoke(android.content.Intent,androidx.navigation3.runtime.deeplink.RequestExtras)` factory method. | android |

## Top-level functions

### DeepLinkUri

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkUri.kt+function:DeepLinkUri) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.2.0)

```
fun DeepLinkUri(uriString: String): DeepLinkUri
```

Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#DeepLinkUri(kotlin.String)` which parses the given encoded URI string.

| Parameters |
|---|---|
| `uriString: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | an RFC 2396-compliant, encoded URI |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkUri` | NavUri for this given uri string |

### emptyRequestExtras

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/RequestExtras.kt+function:emptyRequestExtras) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.2.0)

```
fun emptyRequestExtras(): RequestExtras
```

Returns an empty `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras`.

### requestExtras

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/RequestExtras.kt+function:requestExtras) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.2.0)

```
inline fun requestExtras(builder: RequestExtrasScope.() -> Unit): RequestExtras
```

Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope` to build a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` for a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`.

| Parameters |
|---|---|
| `builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | the DSL that provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasScope` to build a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` |

## Extension functions

### DeepLinkRequest.Companion.actionExtra

android Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkRequest.android.kt+function:actionExtra)

```
fun DeepLinkRequest.Companion.actionExtra(action: String): RequestExtras
```

Returns a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` that stores the provided `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).actionExtra(kotlin.String)` with the key `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).ActionExtrasKey()`.

The value can be retrieved via extras\[`https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).ActionExtrasKey()`\].

### DeepLinkMatcher.Companion.actionFilter

android Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkRequest.android.kt+function:actionFilter)

```
fun DeepLinkMatcher.Companion.actionFilter(action: String): DeepLinkMatcher.Filter
```

Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` that filters a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` with the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher.Companion).actionFilter(kotlin.String)`. Matching is case-insensitive.

| Parameters |
|---|---|
| `action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the action the filter by |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.Filter` | true if the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`'s Action exactly matches the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher.Companion).actionFilter(kotlin.String)`, false if the request's Action does not match or if the request does not provide any Action. |

### DeepLinkRequest.Companion.invoke

android Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkRequest.android.kt+function:invoke)

```
operator fun DeepLinkRequest.Companion.invoke(
    intent: Intent,
    extras: RequestExtras = emptyRequestExtras()
): DeepLinkRequest
```

Creates a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` with an `https://developer.android.com/reference/android/content/Intent.html`.

The returned `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` will be populated with the following data:

1. `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#uri()` will be `https://developer.android.com/reference/android/content/Intent.html#getData()` if not null

2. `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#extras()` will contain any non-null information from `https://developer.android.com/reference/android/content/Intent.html#getType()`, `https://developer.android.com/reference/android/content/Intent.html#getAction()`, and `https://developer.android.com/reference/android/content/Intent.html#getExtras()`.

| Parameters |
|---|---|
| `intent: https://developer.android.com/reference/android/content/Intent.html` | The Intent with the metadata to construct a DeepLinkRequest |
| `extras: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras = emptyRequestExtras()` | The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` holding key-value pairs of `RequestExtrasKey<T>` to `T` to provide extra information to the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`. If `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).invoke(android.content.Intent,androidx.navigation3.runtime.deeplink.RequestExtras)` contains an Action stored under `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).ActionExtrasKey()` or a MimeType stored under `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest.Companion.MimeTypeExtrasKey`, their values will override any Action or MimeType stored in the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).invoke(android.content.Intent,androidx.navigation3.runtime.deeplink.RequestExtras)`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` | a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest` instance |

### DeepLinkMatcher.withBackStack

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/BackStackMatcher.kt+function:withBackStack)

```
fun <T : K, K : Any> DeepLinkMatcher<T, DeepLinkMatcher.MatchResult<T>>.withBackStack(
    backStackBuilder: (matchResult: DeepLinkMatcher.MatchResult<T>) -> List<K>
): BackStackMatcher<T, K>
```

Returns a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher` which wraps this `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher` to build a back stack upon matching.

When this matcher matches a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest`, `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher).withBackStack(kotlin.Function1)` is invoked with the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult` to construct the back stack.

`https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher).withBackStack(kotlin.Function1)` the type of the navigation key associated with this matcher, must be of type `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkMatcher).withBackStack(kotlin.Function1)` the element type of the back stack `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html`

```kotlin
import androidx.navigation3.runtime.NavKey
import androidx.navigation3.runtime.deeplink.BackStackMatchResult
import androidx.navigation3.runtime.deeplink.DeepLinkMatcher
import androidx.navigation3.runtime.deeplink.DeepLinkRequest
import androidx.navigation3.runtime.deeplink.DeepLinkUri
import androidx.navigation3.runtime.deeplink.UriDeepLinkMatcher
import androidx.navigation3.runtime.deeplink.withBackStack

val matcher =
    UriDeepLinkMatcher(
            uriPattern = DeepLinkUri("https://www.nav3deeplinksample.com/userlist"),
            serializer = serializer<UserListKey>(),
        )
        .withBackStack { matchResult -> listOf(HomeKey, matchResult.key) }

// handling a request
val request = DeepLinkRequest(uri = DeepLinkUri("https://www.nav3deeplinksample.com/userlist/"))
// returns a BackStackMatchResult containing the matched key and the constructed back stack
val matchResult: BackStackMatchResult<UserListKey, NavKey>? = matcher.match(request)
// listOf(HomeKey, UserListKey)
val backStack: List<NavKey>? = matchResult?.backStack
val key: UserListKey? = matchResult?.key
```

```kotlin
import androidx.navigation3.runtime.NavKey
import androidx.navigation3.runtime.deeplink.BackStackMatchResult
import androidx.navigation3.runtime.deeplink.DeepLinkMatcher
import androidx.navigation3.runtime.deeplink.DeepLinkRequest
import androidx.navigation3.runtime.deeplink.DeepLinkUri
import androidx.navigation3.runtime.deeplink.UriDeepLinkMatcher
import androidx.navigation3.runtime.deeplink.withBackStack

val matcher =
    UriDeepLinkMatcher(
            uriPattern = DeepLinkUri("https://www.nav3deeplinksample.com/articles/{id}"),
            serializer = serializer<Article>(),
        )
        .withBackStack { matchResult ->
            val article = matchResult.key
            val parent =
                if (article.id >= 10) ArticleSection("Shipping") else ArticleSection("Returns")
            listOf(parent, article)
        }

// handling a request
val request =
    DeepLinkRequest(uri = DeepLinkUri("https://www.nav3deeplinksample.com/articles/12"))

// returns a BackStackMatchResult containing the Article key and parent key based on article id
val matchResult: BackStackMatchResult<Article, NavKey>? = matcher.match(request)
// listOf(parent, article)
val backStack: List<NavKey>? = matchResult?.backStack
val key: Article? = matchResult?.key
```

| Parameters |
|---|---|
| `backStackBuilder: (matchResult: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult<T>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<K>` | lambda used to construct the back stack from the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkMatcher.MatchResult` |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher<T, K>` | a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/BackStackMatcher` wrapping this matcher |

## Extension properties

### DeepLinkRequest.Companion.ActionExtrasKey

android Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkRequest.android.kt+symbol:ActionExtrasKey)

```
val DeepLinkRequest.Companion.ActionExtrasKey: RequestExtrasKey<String>
```

The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` for the Action stored inside the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtras` returned by `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).actionExtra(kotlin.String)`.

### DeepLinkRequest.Companion.IntentExtrasKey

android Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/deeplink/DeepLinkRequest.android.kt+symbol:IntentExtrasKey)

```
val DeepLinkRequest.Companion.IntentExtrasKey: RequestExtrasKey<Bundle>
```

The `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/RequestExtrasKey` for the `https://developer.android.com/reference/android/content/Intent.html#extras` stored in `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/DeepLinkRequest#extras()` when the Request is created with `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary#(androidx.navigation3.runtime.deeplink.DeepLinkRequest.Companion).invoke(android.content.Intent,androidx.navigation3.runtime.deeplink.RequestExtras)` factory method.

The `https://developer.android.com/reference/android/os/Bundle.html` is stored as a `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState`.