独特而包罗万象的深度 link
Unique and catch-all deep link
我有一个相当简单的问题,但我似乎找不到解决方案。我有一个包含多项活动的 Android 应用程序。我想形成特定活动的特定深层链接,并将所有其他深层链接定向到 "catch-all" 类型 activity。
这是我的清单:
<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
-> 深层链接到 activity1.
domain://
-> activity2
的深层链接
domain://random
-> 深层链接到 activity2
domain://somewhereElse
-> activity2
的深层链接
现在 domain:// anything 正在解析为 activity2.
感谢任何帮助,提前致谢!
<intent-filter>
element supports an integer priority
attribute。默认情况下,它的值为 0
,因此您可以在 "catch-all" 过滤器上设置 negative 优先级,以确保它在所有其他过滤器之后运行:
<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
属性是否处理负值。如果没有,您可以 而 为所有非 "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="specificPlace" />
</intent-filter>
我有一个相当简单的问题,但我似乎找不到解决方案。我有一个包含多项活动的 Android 应用程序。我想形成特定活动的特定深层链接,并将所有其他深层链接定向到 "catch-all" 类型 activity。
这是我的清单:
<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
-> 深层链接到 activity1.
domain://
-> activity2
domain://random
-> 深层链接到 activity2
domain://somewhereElse
-> activity2
现在 domain:// anything 正在解析为 activity2.
感谢任何帮助,提前致谢!
<intent-filter>
element supports an integer priority
attribute。默认情况下,它的值为 0
,因此您可以在 "catch-all" 过滤器上设置 negative 优先级,以确保它在所有其他过滤器之后运行:
<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
属性是否处理负值。如果没有,您可以 而 为所有非 "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="specificPlace" />
</intent-filter>