DeepLinkDispatch匹配任何路径

时间:2016-06-10 07:29:47

标签: android deep-linking

我使用AirBnB的DeepLinkDispatch处理应用程序中的深层链接,我希望匹配以下深层链接:

appscheme://productsSection/some/nested/product/categories/structure
appscheme://productsSection/some/nested/product/categories
appscheme://productsSection

根据我在文档中看到的内容,我可以配置一个深层链接路径,如:

@DeepLink("appscheme://productsSection")
@DeepLink("appscheme://productsSection/{topCategoryId}")
@DeepLink("appscheme://productsSection/{topCategoryId}/{subCategoryId}")

我的问题是我在编译时不知道嵌套路径有多深。

有没有办法配置库以匹配整个嵌套路径而不指定每个段,如@Deeplink("appscheme://productsSection/*"),以便我可以手动处理URI路径并从中构建我的导航堆栈?

如果是这样,一个类的注释会是什么? (我只对匹配深层链接,而不是从路径段中提取路径段感兴趣)

作为一个注释,我还使用该库来处理应用程序各个部分的其他深层链接(匹配主要在URI主机和一个或两个路径段上完成),我不想删除库和手工处理所有深层链接。

谢谢!

1 个答案:

答案 0 :(得分:1)

通过查看代码库,该库目前不支持此功能。

您可以尝试打开issue,看看他们是否可以添加支持。

在撰写本文时,鉴于您尝试实现的目标超出了库的范围,在AndroidManifest.xml内部直接实现该方案并不容易,然后再去从那里?

<activity android:name=".MyDeepLinkActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="appscheme" android:host="productsSection" />
    </intent-filter>
</activity>

您可以详细了解如何设置here