防止浏览器循环

时间:2011-10-14 19:30:19

标签: android url android-intent android-browser android-view

我创建了一个点击特定网址时打开的应用。显然我有这样的事情:

        <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的链接......它就会打开我的应用。但是,在我的应用程序中,在完成某些操作之后,我想将suer发送回默认浏览器(或者当他们点击链接开始时使用的浏览器/ 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);
    
  4. 如何让httpIntent使用默认浏览器(或者用户来自哪里)而不是再次调用我的应用程序?

    编辑:我已经能够以make-shift方式解决问题,方法是将我自己的某个域(作为一种别名)的CNAME记录转到与{{3}相同的位置}。它很糟糕,因为用户现在看到了不同的URL,但它仍然可以工作,因为它不会调用intent。 (当我谈到意图时,我甚至会使用正确的语言吗?)

1 个答案:

答案 0 :(得分:0)

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

startActivity(HttpIntent);