android - 如何在导航图 Android 中通过 URI 处理深层链接?
问题描述
如何在导航组件中使用 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 toolbar 应与 NavController 更改保持同步的工具栏。
有了这个,我知道工具栏将假设 navController 的任何更改(startDestination 上的更改,打开深度链接等)
解决方案
推荐阅读
- php - 如何在推送到实时服务器后解决 codeigniter 4 的问题
- pdf - 安装 MikTex、pandoc 和 nbconvert 后将 Jupyter Notebook 转换为 PDF 时出错
- project-reactor - Project Reactor + flatMap + 多个 onErrorComplete - 未按预期工作
- c# - 为什么我无法从 HttpResponseMessage 获取 Content json?
- javascript - 无法在 p:bar 类型的图表中执行将图像绘制到画布
- python - 模型在 Jupyter 笔记本中运行,但不在 Flask 中
- listview - Flutter:如何根据 Expanded 和 itemCount 在 ListView 中自动调整高度、宽度、字体大小
- git - git合并文件有冲突
- javascript - 遇到 npm 问题
- r - 使用堆叠的 geom_bar 时如何将色调限制为两个值