2013-09-27 54 views
7

目前在我的應用程序中,我有自己的URI方案來檢測用戶何時點擊特定的URI。在Manifest文件中使用在Android中接收自定義網址方案的數據

守則如下:

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

如果用戶點擊其中有我自定義的URI在瀏覽器中的鏈接時,現在會彈出用戶一個選項來選擇我的應用程序。

但是,如何在開始進一步處理時將這些數據鏈接到我的應用程序?基本上,我如何將數據從瀏覽器傳遞到我的應用程序?

由於提前

+0

爲什麼設置android.intent.action.VIEW兩次? – portfoliobuilder

+0

@portfoliobuilder應該有一次,如果兩次寫入都沒有拋出任何錯誤,那麼就錯過了。 – aandroidtest

回答

9

假設你點擊的URL是http://twitter.com/status/1234 您可以通過下面的方法獲取數據。

// http://twitter.com/status/1234 
    Uri data = getIntent().getData(); 
    Log.d(TAG, data.toString()); 
    String scheme = data.getScheme(); // "http" 
    Log.d(TAG, scheme); 
    String host = data.getHost(); // "twitter.com" 
    Log.d(TAG, host); 
    String inurl = data.toString(); 
    List<String> params = data.getPathSegments(); 
    String first = params.get(0); // "status" 
    String second = params.get(1); // "1234" 
+0

謝謝!它完美的作品。 – aandroidtest

+0

很高興幫助! –

+0

我總是得到空路徑:(但數據是正確的,而不是空。 – djdance