【发布时间】:2015-02-03 22:32:22
【问题描述】:
我被以下情况困住了。我在AndroidManifest.xml
预期的行为是当我找到格式为 http://www.domain.com/a/blabla 的 URL 或在 SMS/电子邮件中存在格式为 domain/xyz 的链接时,系统应该触发我的活动。
案例#1:工作正常
<activity
android:name=".MYActivity">
<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="xyz"
android:scheme="domain" />
</intent-filter>
</activity>
案例#2:工作正常
<activity
android:name=".MYActivity">
<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="http"
android:host="www.domain.com"
android:pathPrefix="/a"
/>
</intent-filter>
</activity>
案例#3:不工作
<activity
android:name=".MYActivity">
<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="xyz"
android:scheme="domain" />
<data
android:scheme="http"
android:host="www.domain.com"
android:pathPrefix="/a"
/>
</intent-filter>
</activity>
非常感谢任何建议/点/帮助
【问题讨论】:
-
TL;DR:
host和pathPrefix必须在一个intent-filter中相同。您可以将data元素复制到一个intent-filter与不同的scheme。示例:同一主机/路径前缀的 http 和 https 版本可以在一个意图过滤器中。 -
@EugenPechanec 您的评论可能是对这个问题的有效答案。链接到答案比代码审查中的评论更容易:)
标签: android android-activity android-manifest intentfilter deep-linking