独特而全面的深层链接

问题描述 投票:0回答:1

我有一个相当简单的问题,我似乎无法找到解决方案。我有一个Android应用程序,有多个活动。我希望形成特定活动的特定深层链接,并将所有其他深层链接指向“全能”类型活动。

这是我的表现:

<activity
    android:name=".views.activity1">
    <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="domain"
            android:host="specificPlace" />
    </intent-filter>
</activity>

<activity
    android:name=".views.activity2">
    <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="domain"
            android:host="*" />
    </intent-filter>
</activity>

所以我想要的是以下内容:

domain://specificPlace - >与活动1的深层链接。

domain:// - >与activity2的深层链接

domain://random - >与activity2的深层链接

domain://somewhereElse - >与activity2的深层链接

现在域://任何东西都解析为activity2。

任何帮助表示赞赏,提前谢谢!

android deep-linking android-deep-link
1个回答
1
投票

<intent-filter> element支持整数priority attribute。默认情况下,它的值为0,因此您可以在“catch-all”过滤器上设置负优先级,以确保它在所有其他过滤器之后运行:

<intent-filter android:priority="-1">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:scheme="domain"
        android:host="*" />
</intent-filter>

我自己没试过,但似乎它应该有效。我不确定的部分是priority属性是否处理负值。如果没有,您可以将所有非“全能”过滤器放在正面优先级:

<intent-filter android:priority="1">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:scheme="domain"
        android:host="specificPlace" />
</intent-filter>
© www.soinside.com 2019 - 2024. All rights reserved.