我创建了一个在单击特定 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,但它仍然有效,因为它没有调用意图。(当我谈论意图时,我是否使用了正确的语言?)