Intent Chooser中的重复应用程序列表

时间:2017-09-06 06:28:41

标签: android android-intent

我似乎在我的应用中使用深层链接做错了。我有两个活动:查看网站帖子的帖子查看器和查看用户个人资料的个人资料查看器。以下是我根据Google深度链接指南设置的代码。

个人资料活动清单声明

<activity
    android:name=".ui.activity.ProfileActivity"
    android:parentActivityName=".ui.activity.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:host="gab.ai"
            android:pathPattern="/..*"
            android:scheme="https" />
    </intent-filter>
</activity>

Post Viewer活动清单声明

<activity
    android:name=".ui.activity.PostViewerActivity"
    android:parentActivityName=".ui.activity.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:host="gab.ai"
            android:pathPattern="/..*/posts/..*"
            android:scheme="https" />
    </intent-filter>
</activity>

我遗漏了意图处理代码,因为它是多余的。深层链接正常工作,但打开指向帖子查看器活动的URL时会出现一个奇怪的问题。

root url

这完美无缺。点击https://url/等链接会打开对话框并仅列出一个选项在选择应用时,它会完美地打开正确的活动。

post url

在这里,它变得奇怪。点击https://url/../posts/等网址时,Android系统会看到两个活动深层链接。 我的问题是如何解决这个问题?更改网址方案已经结束,而且我对于深层链接不够流畅,无法找到解决方法。

1 个答案:

答案 0 :(得分:0)

ProfileActivity android:pathPattern="/..*"等于/..*/posts/..*,因为星号(&#39; *&#39;)匹配前一个字符的0到多次出现的序列。尝试使用转义字符\,如docs

中所述