如何在导航图Android中按URI处理Deeplink?

时间:2019-12-18 11:35:12

标签: android androidx android-architecture-navigation

如何在导航组件中使用CTA Uri打开深层链接而不会丢失堆栈?

动机:

private fun openDeepLink(cta: String) { // cta= schema://host
  navigationController?.run{
    val deeplink = this
            .createDeepLink()
            .setDestination(cta)
            .build()

    handleDeepLink(deeplink)
   }
}

 navigationController?.createDeepLink()
            ?.setUriDestination(cta)
            ?.createTaskStackBuilder()
            ?.startActivities()

使用

navigationController?.handleDeepLink(Intent(Intent.ACTION_VIEW, Uri.parse(url)))

仅适用于“向上”按钮(工具栏),而不适用于系统“后退”按钮。我仍然不明白为什么在使用时工具栏和本机背面未对齐:

toolbar.setupWithNavController(findNavController(R.id.activity_base_container))

和文档说:

  
      
  • @param工具栏应该与更改保持同步的工具栏   到NavController。
  •   

有了这个,我了解到工具栏将承担navController的任何更改(startDestination的更改,打开的深层链接等)

0 个答案:

没有答案