1

我创建了一个在单击特定 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 视图)。我的问题是我最终创建了一个循环:

  1. 用户单击链接http://example.com/xxx并打开我的应用程序。
  2. 我的应用程序做了一些事情,现在想将用户发送到不同的 URL,例如。http://example.com/yyy
  3. 我的应用程序发送的意图最终只是回到自身(我的应用程序)。

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

4

1 回答 1

0
Intent HttpIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://example.com/yyy"));

startActivity(HttpIntent); 
于 2011-10-14T19:36:51.537 回答