首页 > 解决方案 > 有没有办法告诉清单合并不要将路径数据添加到意图过滤器

问题描述

我正在使用导航组件和导航图来处理深层链接。我添加了指向我的目的地的深层链接,如下所示

<deepLink app:uri="example://foo" />

意图过滤器文档提到:

如果过滤器指定了方案和权限,但没有指定路径,则具有相同方案和权限的所有 URI 都会通过过滤器,而不管它们的路径如何。

据此,uri likeexample://foo应该与我的深层链接匹配。但是清单合并将此行添加到我的意图过滤器中,即使不向我的 uri 添加任何路径:

<data android:path="/" />

所以只有 aexample://foo/是匹配的。有没有办法告诉清单合并或导航图从我的意图过滤器中删除此数据元素?

标签: androidintentfilterandroid-architecture-navigationandroid-navigation-graph

解决方案


Android 不允许您创建一个intent-filter匹配任何路径的路径:不可能编写一个匹配但不匹配的意图过滤器。example://fooexample://foo/something_random

根据这个问题,这是故意的:使用无路径的 uri likeapp:uri="example://foo"意味着您希望完全匹配该空路径 - 即,/而不是将每个路径与该权限和方案匹配。


推荐阅读