2015-08-19 138 views
2

我想從一個自定義URL方案啓動我的應用程序的Android應用程序。我檢查了關於dev android的深層鏈接部分,這裏是我的代碼片段。這似乎沒有用,看起來像一個URL雖然火:對myApp://主機= myhost.com如何啓動自定義URL方案

清單:

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 

    <category android:name="android.intent.category.LAUNCHER" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 

    <data android:scheme="myApp" /> 
</intent-filter> 

在這是我的主要活動的活動,我有:

Intent intent = getIntent(); 
Uri uri = intent.getData(); 
if (uri != null) { 
    String host = uri.getQueryParameter("host"); 
} 

當我有了URL作爲超鏈接的電子郵件應用程序不啓動。 此外,這將是測試這個好辦法?

回答

1

試試這個,編輯IntentFilter

<intent-filter> 
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:host="www.youtube.com" android:scheme="http"></data> 
</intent-filter> 

編輯

<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.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:host="www.youtube.com" android:scheme="http"></data> 
</intent-filter> 
+0

我的動作是主要是進入PT。進入應用程序。它不適用於MAIN? – lokoko

+0

好的,我編輯了我的問題。這就是你如何擁有兩個獨立的'IntentFilters'。 –

+0

酷感謝,但我發現,你可以將它們合併成一個單一的意圖過濾和排序。 – lokoko

0

ķ它看起來像ACTION_VIEW是支持自定義的URI方案是必須的。我可以通過添加VIEW和MAIN來使其工作。

1

瀏覽器轉換爲小寫的方案,所以你需要的數據標籤更改爲

<data android:scheme="myapp"/>