Jetpack Navigation обрабатывает глубокие ссылки вручную в onNewIntent - PullRequest
1 голос
/ 28 апреля 2020

Я использую 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 вручную лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...