在我的应用中,我有一个意图过滤器设置,以匹配某些类型的链接,如果在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;。然而,如果我这样做并且只是尝试启动浏览器的意图,我的应用程序再次捕获链接,我们围成一圈。
如何专门强制在浏览器中打开链接?
答案 0 :(得分:1)
我相信您可以使用this thread中提供的答案来实现目标。基本上,当您启动“在浏览器中打开”意图时,您可以预览能够打开它的活动。从那里,您可以选择一个不是您的应用程序,并将其设置为intent上的包,这将导致另一个应用程序打开它。
在最糟糕的情况下,您可以强制创建选择器,其中包含您的应用和可以打开您网站的其他应用,使用户可以选择浏览器。
This other question也可能有用,因为它的答案包含自定义选择器的实现,显然允许您过滤可见活动,因此您可以删除您的应用。
答案 1 :(得分:0)
我不知道如何绕过Android Intent Filter。
如果用户使用Android默认浏览器或Chrome,则应使用以下链接中的方式专门打开Intent。