可以绕过Android Intent Filter吗?

时间:2014-03-19 02:01:19

标签: android android-intent

在我的应用中,我有一个意图过滤器设置,以匹配某些类型的链接,如果在Web浏览器或其他字段中单击。它目前看起来像这样:

<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="www.mydomain.com"
        android:scheme="http" />
    <data
        android:host="mydomain.com"
        android:scheme="http" />
    <data
        android:host="m.mydomain.com"
        android:scheme="http" />
</intent-filter>

这很有效。如果您点击一个链接说http://www.mydomain.com/article_name,那么用户可以选择在应用中打开文章,我可以唯一地显示内容。这就是问题 - 在应用程序中,我想为用户提供一个选项,让他们仍然可以突破并在浏览器中打开&#34;。然而,如果我这样做并且只是尝试启动浏览器的意图,我的应用程序再次捕获链接,我们围成一圈。

如何专门强制在浏览器中打开链接?

2 个答案:

答案 0 :(得分:1)

我相信您可以使用this thread中提供的答案来实现目标。基本上,当您启动“在浏览器中打开”意图时,您可以预览能够打开它的活动。从那里,您可以选择一个不是您的应用程序,并将其设置为intent上的包,这将导致另一个应用程序打开它。

在最糟糕的情况下,您可以强制创建选择器,其中包含您的应用和可以打开您网站的其他应用,使用户可以选择浏览器。

This other question也可能有用,因为它的答案包含自定义选择器的实现,显然允许您过滤可见活动,因此您可以删除您的应用。

答案 1 :(得分:0)

我不知道如何绕过Android Intent Filter。

如果用户使用Android默认浏览器或Chrome,则应使用以下链接中的方式专门打开Intent。

https://developers.google.com/chrome/mobile/docs/intents