android - Android 深层链接在创建选择器中显示重复的应用程序
问题描述
我正在使用深度链接来打开我的应用程序,我需要根据链接类型打开 5 个活动,所以我在清单中定义了 5 种类型的链接,它工作正常,但这是问题所在;在大多数设备中它都可以正常工作,但在某些设备中,Android 创建选择器会显示我的五个这样的应用程序,这真的很烦人
这是我在清单中定义所有 5 种类型的链接以打开不同活动的代码:
<activity
android:name=".ui.main.MainActivity">
<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="https" />
<data android:host="aionet.ir" />
<data android:path="/" />
<data android:pathPrefix="/search" />
</intent-filter>
<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="aionet" />
<data android:host="backcallback" />
<data android:path="/" />
<data android:pathPrefix="/index" />
</intent-filter>
</activity>
<activity
android:name=".ui.movieDetails.MovieDetailActivity">
<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="https" />
<data android:host="aionet.ir" />
<data android:path="/" />
<data android:pathPrefix="/movies" />
</intent-filter>
<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="aionet" />
<data android:host="backcallback" />
<data android:path="/" />
<data android:pathPrefix="/movie" />
</intent-filter>
</activity>
<activity
android:name=".ui.seriesDetails.SeriesDetailActivity">
<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="https" />
<data android:host="aionet.ir" />
<data android:path="/" />
<data android:pathPrefix="/series" />
</intent-filter>
<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="aionet" />
<data android:host="backcallback" />
<data android:path="/" />
<data android:pathPrefix="/serie" />
</intent-filter>
</activity>
<activity
android:name=".ui.cast.CastActivity">
<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="https" />
<data android:host="aionet.ir" />
<data android:path="/" />
<data android:pathPrefix="/cast" />
</intent-filter>
</activity>
<activity
android:name=".ui.buyPackage.BuyPackageActivity">
<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="https" />
<data android:host="aionet.ir" />
<data android:path="/" />
<data android:pathPrefix="/packages" />
<data android:pathPrefix="/order" />
</intent-filter>
</activity>
解决方案
您不想像那样使用路径和路径前缀。非此即彼。现在,所有这些活动都认为它们是基于路径匹配的。单独使用 pathPrefix。
推荐阅读
- python - 构造一个允许通过numpy数组调用方法的类
- c++ - C++11:文字 7 是纯右值?
- qt - 如何从 qt map.tocoordinate(Qt.point()) 获取高度?
- rest - 包含提及父资源的子资源的 url 的适当端点
- sql - 如何从表格中选择一个特定列中的多个单元格
- discord.js - 发送嵌入时如何存储嵌入?
- firebase - 有没有办法删除 Firebase 云消息传递 (FCM) 主题?
- sql - 将多个查询与 4 个连接结合起来?
- javascript - 如何使用 puppeteer 获取鼠标位置
- javascript - characters.map 不是函数