0

我想拦截链接,以便它打开我的应用程序,就像打开 maps.google.com 打开地图应用程序一样。

我已经阅读了 SO 中关于此的其他线程,但我不知道为什么我无法使其正常工作。

我的 AndroidManifest 中有这个

<activity android:name="com.my_app.my_app.AppActivity">
    <intent-filter>
        <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"
              android:host="flickr.com" />
        <data android:scheme="http"
              android:host="www.flickr.com" />
    </intent-filter>
</activity>

我用真机进行了测试,使用海豚浏览器。我在地址栏中输入了 www.flickr.com,它没有显示任何选择应用程序的选项。我已经测试海豚打开 maps.google.com 并且我可以选择是否使用地图应用程序打开。所以我认为海豚不是问题。

我也从默认浏览器输入了 flickr。也没有用。

我在这里想念什么吗?

4

2 回答 2

0

您只能在使用 Intent 打开相应的 Activity 时拦截 URL,因为它的执行方式是使用 Intent 过滤器和 Intent 解析。当您在浏览器中键入地址时没有任何意图,只是一个方法调用。如果 dolphin 显示您打开 google 地图,可能它是硬编码到 Dolphin 应用程序中的,但它可能不适用于其他 url 或应用程序。

于 2012-07-28T21:24:02.207 回答
0

您需要添加 android:path、android:pathPrefix 或 android:pathPattern 属性。

<data android:scheme="http" android:host="flickr.com" android:pathPrefix="/" />
<data android:scheme="http" android:host="www.flickr.com" android:pathPrefix="/" />
于 2013-07-09T04:04:28.027 回答