申请不是拦截网址

时间:2014-05-03 13:32:07

标签: android android-intent

我试图在Android上拦截我自己的应用程序的URL,以便用户可以在应用程序中而不是在浏览器上打开URL。 (我还没有浏览器支持)。

这就是我正在做的事情

<activity android:name=".ui.activity.MainActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.PICK_ACTIVITY" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" />
        <data android:host="myapp.com" />
        <data android:pathPattern=".*"/>
    </intent-filter>
</activity>

出于某种原因,我打开myapp.com的任何时候它仍然在浏览器中打开,而不会让我选择在我的应用程序中打开URL。我在运行API 16的模拟器上尝试此操作。我已经多次关闭模拟器并再次启动它,但仍然是相同的行为。

避免个人应用的网址出现任何错误。我甚至尝试过:

         <data android:host="goo.gl" android:scheme="http" />
         <data android:host="goo.gl" android:scheme="https" />

该应用程序拦截上述网址但仅限第一次。如果我在显示的选项中单击“JUST ONCE”,在重新启动模拟器之前,我不会再次获得该选项。

有没有人经历过这个?我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

这个答案帮助了我:link to question

如果您将软件包名称添加到intent,它将默认打开您的应用程序