android - Android - 具有相似 URL 的深度链接
问题描述
我正在深度链接(使用喷气背包导航)并且逻辑似乎正在运行。我遇到的问题是activity_discover_detail的逻辑似乎阻塞了fragment_discover_landing的逻辑
我将如何阻止这种情况发生?
这是我的导航图中有问题的活动和片段:
<fragment
android:id="@+id/fragment_discover_landing"
android:name="com.my.app.fragments.DiscoverLandingFragment"
android:label="@string/nav_discover_landing"
tools:layout="@layout/discover_landing_fragment">
<action
android:id="@+id/fragment_discover_landing_back_action"
app:popUpTo="@id/fragment_reading_lists"
app:popUpToInclusive="false" />
<argument
android:name="category"
android:defaultValue="Latest"
app:argType="string" />
<argument
android:name="searchText"
app:argType="string" />
<argument
android:name="searchMode"
android:defaultValue="false"
app:argType="boolean" />
<deepLink
android:id="@+id/discover_landing_category"
app:uri="myAppName://discover/category?name={category}" />
</fragment>
<activity
android:id="@+id/activity_discover_detail"
android:name="com.my.app.activities.DiscoverDetailActivity"
tools:layout="@layout/activity_discover_detail">
<argument
android:name="already_handled"
android:defaultValue="true"
app:argType="boolean" />
<deepLink
android:id="@+id/in_app_sell_page"
app:uri="myAppName://discover/{contentId}" />
</activity>
解决方案
我认为这种情况正在发生,因为myAppName://discover/{contentId}
它更通用并且包含myAppName://discover/category?name={category}
.
通常,您需要使您的活动“处理”更具体,以免影响片段之一。
也许像这样的链接可以解决问题:myAppName://discover/detail/{contentId}
此外,我不熟悉新的导航组件深度链接,但我没有在您的代码中看到您定义变量的位置,范围内定义的contentId
内容是,我不知道这是否正常。DiscoverDetailActivity
already_handled
编辑
如果您无法控制链接格式,我建议您在导航图中为深层链接设置一个入口点,而不是进行正确的解析、映射、重定向。这将是一个LinkDispatcherActivity
拦截所有应用程序链接的透明活动,您可以使用.*
通配符定义链接:这<deepLink app:uri="myAppHost://myAppScheme/.*"/>
将匹配并拦截所有以 . 开头的链接myAppHost://myAppScheme
。
推荐阅读
- swift - 设置嵌套结构并通过 FireStore [Swift] 填充
- flutter - 如何在 Flutter 中的时间选择器的标题上添加一些文本?
- excel - 我可以在 Excel 数据连接属性中使用通配符运算符吗
- python - 如何保留一个系列的最后四个字母?
- c# - ML ONNX 运行时的装配问题
- java - Java Web 服务器比较 if-modified-since 和 last modified
- android - 如何知道从哪个 Fragment 实例调用 setOnCheckedChangeListener?
- python-3.x - python 3.7 (MacOS Mojave) 中的 tkinter 图标有问题
- iis - WAS 服务器 - 事件查看器错误和 IIS 日志错误
- php - 从 PHP 循环发布 Ajax 请求