Я пытаюсь внедрить навигацию от уведомления о толчке к экрану через DeepLinks, и я заставил его работать для некоторых из моих уведомлений. Но навигация на мой детальный экран просто не хочет работать. Я размышлял об этом в течение нескольких дней, но я не могу понять проблему. Но даже если я заменяю ее случайной строкой, такой как «Привет», возникает та же проблема.
Я также попробовал пару различных вариантов для Navdeeplink, но, возможно, я делаю что-то не так? Я работал с документами, представленными здесь: Kotlin Deeplinks < /p>
Кто -нибудь, у кого была похожая проблема и может мне помочь? Спасибо! < /P>
java.lang.IllegalArgumentException: Navigation destination that matches request
NavDeepLinkRequest{ uri=de.ashman.ontrack://detail/1061474/Superman/
https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Foriginal%2FombsmhYUqR4qqOLOxAyr5V8hbyv.jpg/MOVIE }
cannot be found in the navigation graph ComposeNavGraph(0x0)
startDestination={Destination(0xe19385a7) route=de.ashman.ontrack.navigation.Route.Splash}
< /code>
@Serializable
@SerialName("detail")
data class Detail(
val id: String,
val title: String,
val coverUrl: String,
val type: MediaType
) : Route()
fun NavGraphBuilder.mediaGraph(
navController: NavController
) {
composable(
typeMap = mapOf(
typeOf() to CustomNavType.MediaNavigationParamType,
typeOf() to CustomNavType.MediaTypeNavType,
),
deepLinks = listOf(
navDeepLink { uriPattern = "de.ashman.ontrack://detail/{id}/{title}/{coverUrl}/{type}" },
)
) { backStackEntry ->
val detail: Route.Detail = backStackEntry.toRoute()
...
}
}
...
// I BUILD MY DEEPLINK TO NAVIGATE TO HERE
"recommendation" -> {
val deeplinkUri = Uri.Builder()
.scheme("de.ashman.ontrack")
.authority("detail")
.appendPath(data["mediaId"].toString())
.appendPath(data["mediaTitle"].toString())
.appendPath(data["mediaCoverUrl"].toString())
.appendPath(data["mediaType"].toString())
.build()
deeplinkUri.toString()
}
// EDIT: CustomNavType
val MediaTypeNavType = object : NavType(
isNullableAllowed = false
) {
override fun get(bundle: SavedState, key: String): MediaType? {
return bundle.read {
getString(key).let { json.decodeFromString(it) }
}
}
override fun parseValue(value: String): MediaType {
return json.decodeFromString(UriCodec.decode(value))
}
override fun put(bundle: SavedState, key: String, value: MediaType) {
bundle.write {
putString(key, json.encodeToString(value))
}
}
override fun serializeAsValue(value: MediaType): String {
return UriCodec.encode(json.encodeToString(value))
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... be-found-i
Навигационное направление, которое соответствует запросу NAVDEEPLINKREQUEST не может быть найдено на навигационном графи ⇐ Android
Форум для тех, кто программирует под Android
1752450290
Anonymous
Я пытаюсь внедрить навигацию от уведомления о толчке к экрану через DeepLinks, и я заставил его работать для некоторых из моих уведомлений. Но навигация на мой детальный экран просто не хочет работать. Я размышлял об этом в течение нескольких дней, но я не могу понять проблему. Но даже если я заменяю ее случайной строкой, такой как «Привет», возникает та же проблема.
Я также попробовал пару различных вариантов для Navdeeplink, но, возможно, я делаю что-то не так? Я работал с документами, представленными здесь: Kotlin Deeplinks < /p>
Кто -нибудь, у кого была похожая проблема и может мне помочь? Спасибо! < /P>
java.lang.IllegalArgumentException: Navigation destination that matches request
NavDeepLinkRequest{ uri=de.ashman.ontrack://detail/1061474/Superman/
https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Foriginal%2FombsmhYUqR4qqOLOxAyr5V8hbyv.jpg/MOVIE }
cannot be found in the navigation graph ComposeNavGraph(0x0)
startDestination={Destination(0xe19385a7) route=de.ashman.ontrack.navigation.Route.Splash}
< /code>
@Serializable
@SerialName("detail")
data class Detail(
val id: String,
val title: String,
val coverUrl: String,
val type: MediaType
) : Route()
fun NavGraphBuilder.mediaGraph(
navController: NavController
) {
composable(
typeMap = mapOf(
typeOf() to CustomNavType.MediaNavigationParamType,
typeOf() to CustomNavType.MediaTypeNavType,
),
deepLinks = listOf(
navDeepLink { uriPattern = "de.ashman.ontrack://detail/{id}/{title}/{coverUrl}/{type}" },
)
) { backStackEntry ->
val detail: Route.Detail = backStackEntry.toRoute()
...
}
}
...
// I BUILD MY DEEPLINK TO NAVIGATE TO HERE
"recommendation" -> {
val deeplinkUri = Uri.Builder()
.scheme("de.ashman.ontrack")
.authority("detail")
.appendPath(data["mediaId"].toString())
.appendPath(data["mediaTitle"].toString())
.appendPath(data["mediaCoverUrl"].toString())
.appendPath(data["mediaType"].toString())
.build()
deeplinkUri.toString()
}
// EDIT: CustomNavType
val MediaTypeNavType = object : NavType(
isNullableAllowed = false
) {
override fun get(bundle: SavedState, key: String): MediaType? {
return bundle.read {
getString(key).let { json.decodeFromString(it) }
}
}
override fun parseValue(value: String): MediaType {
return json.decodeFromString(UriCodec.decode(value))
}
override fun put(bundle: SavedState, key: String, value: MediaType) {
bundle.write {
putString(key, json.encodeToString(value))
}
}
override fun serializeAsValue(value: MediaType): String {
return UriCodec.encode(json.encodeToString(value))
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79698668/navigation-destination-that-matches-request-navdeeplinkrequest-cannot-be-found-i[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия