能够绕过Android意图过滤器吗?

4

在我的应用程序中,我设置了一个意图过滤器,以匹配在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,那么用户就可以选择在应用程序中打开文章,并且我可以独特地展示内容。这里有一个问题 - 在应用程序中,我想为用户提供一个选项,仍然可以跳出并“在浏览器中打开”。但是如果我这样做,只是尝试发射意图来启动浏览器,我的应用程序再次捕获链接,我们就会陷入循环。

我怎样才能强制将链接在浏览器中打开?

2个回答

1
我相信你可以使用这个帖子中提供的答案来实现你的目标。基本上,当你启动“在浏览器中打开”意图时,你可以预览能够打开它的活动。从那里,你可以选择一个不是你的应用程序并将其设置为意图上的包,这将导致其他应用程序打开它。
最坏的情况下,你可以强制创建选择器,其中包含可以打开你的站点的你的应用程序和其他应用程序,使用户可以选择浏览器。 这个问题也可能有用,因为它的答案包含了一个自定义选择器的实现,显然允许你过滤可见的活动,所以你可以删除你的应用程序。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接