【发布时间】:2011-12-08 00:40:21
【问题描述】:
我创建了一个在单击特定 URL 时打开的应用。显然我有这样的东西:
<intent-filter>
<data android:scheme="http" android:host="example.com"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
所以这一切都很好,每当有人点击带有http://example.com/whatever/stuff 的链接时...它都会打开我的应用程序。但是,在我的应用程序中,在做了一些事情之后,我想将用户发送回默认浏览器(或者他们在单击链接开始时使用的任何浏览器/Web 视图)。我的问题是我最终创建了一个循环:
- 用户点击链接http://example.com/xxx,我的应用就会打开。
- 我的应用程序做了一些事情,现在想将用户发送到不同的 URL,例如。 http://example.com/yyy
-
我的应用发送的意图最终只是回到自身(我的应用)。
Intent httpIntent = new Intent(Intent.ACTION_VIEW); String theNewURL = http://example.com/yyy; httpIntent.setData(Uri.parse(theNewURL)); startActivity(httpIntent);
如何让我的httpIntent 使用默认浏览器(或用户从哪里开始)而不是再次调用我的应用程序?
编辑:我已经能够以临时的方式解决问题,方法是制作我自己的一个域(作为一种别名)的 CNAME 记录,该记录与http://example.com 位于同一位置。这很糟糕,因为用户现在看到了不同的 URL,但它仍然有效,因为它没有调用意图。 (当我谈论意图时,我是否使用了正确的语言?)
【问题讨论】:
标签: android url android-intent android-browser android-view