2012-07-28 86 views
0

我想攔截鏈接,以便打開我的應用,就像打開maps.google.com打開地圖應用一樣。意向過濾器攔截鏈接不起作用

我已經閱讀過其他線程在這個關於這個,但我不知道爲什麼我不能得到這個工作。

我有這個在我的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。也沒有工作。

有什麼我在這裏失蹤?

+0

默認瀏覽器是否打電話給您的應用程序?我猜Dolphin通過自己的引擎處理了URL ...你可以通過製作另一個應用程序來測試,並開始一個flickr的意圖,如果你的應用程序顯示在列表中,那麼它是可以的。我認爲你做對了。 – 2012-07-28 04:17:02

+0

默認瀏覽器也沒有調用我的應用程序。當我將海豚放入maps.google.com時,我可以選擇地圖應用。所以我認爲海豚不是爲什麼我的應用程序沒有被調用的問題。 – eckyputrady 2012-07-28 07:19:03

回答

0

您只能在使用Intent打開相應的活動時攔截URL,因爲它的使用方式是使用意圖過濾器和意向解析。當你在瀏覽器中輸入地址時沒有意圖,只是一個方法調用。如果海豚顯示你打開谷歌地圖,也許它是硬編碼到海豚應用程序的東西,但它不會與其他網址或應用程序。

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="/" />