Я использую Jetpack Navigation. Мне нужно обрабатывать глубокие ссылки вручную, потому что:
1) Неявные глубокие ссылки не работают должным образом с android:launchMode="singleTask"
Deeplink неправильно перенаправляет, если приложение уже открыто
2) Я передаю в свои пакеты не только простые типы, но и Parcelables, поэтому у меня не будет возможности передавать аргументы
Я сделал подтверждение концепции, использующей явные глубокие ссылки в onNewintent
моей деятельности
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
val data: Uri? = intent?.data
if(data?.lastPathSegment == "discover") {
val pendingIntent = NavDeepLinkBuilder(this)
.setGraph(R.navigation.nav_main)
.setDestination(R.id.discover_dest)
.createPendingIntent()
pendingIntent.send()
}
}
Это работает на моем телефоне, но, если честно, пахнет. Это предполагаемый способ использовать явные глубокие ссылки Jetpack Navigation? Могу ли я обрабатывать глубокие ссылки Jetpack Navigation вручную лучше?