Неявная глубокая ссылка из уведомления в библиотеке JetpackNavigation - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь реализовать неявную обработку глубоких ссылок в моем приложении, но следующий код не работает, и onNewIntent в моем отдельном действии не вызывает, но всегда открывается startDestination из навигационного графика.

На моем навигационном графике у меня есть следующая глубокая ссылка для фрагмента

 <deepLink
        android:id="@+id/deepLink"
        app:uri="people/{uuid}" />

Затем я добавил навигацию. график для файла манифеста между тегом активности

<nav-graph android:value="@navigation/app_graph" />

После того, как я включил реализацию NewIntent в MainActivity, он выглядит как

 override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    findNavController(R.id.fragmentContainer).handleDeepLink(intent)
}

Создание ожидающего намерения происходит следующим образом:

val intent = Intent(context, MainActivity::class.java).apply {
    flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
    data = Uri.parse("people/$uuid")
}

val pendingIntent = PendingIntent.getActivity(
    context,
    PENDING_INTENT_REQUEST_CODE,
    intent,
    0
)

И, наконец, создание диалога

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        // not important
        .setContentIntent(pendingIntent)
        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
        .build()

NotificationManagerCompat
    .from(context)
    .notify(Random.nextInt(), notification)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...