2016-07-10 43 views
2

我需要將它們深層鏈接到兩個URL的活動,但每次點擊一個URL時,它都會同時顯示兩個活動,所以我如何將intent-filter設置爲僅限於1個特定的網址?Android深層鏈接無法正常工作

1 URL http://www.sample.com/newcars/models/33

,其活性

<activity 
     android:name=".ui.activities.NewCarModelEngineActivity" 
     android:label="@string/newCars" 
     android:screenOrientation="sensorPortrait"> 
     <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:host="sample.com" 
       android:pathPrefix="/newcars/engines/" 
       android:scheme="http"/> 
      <data 
       android:host="www.sample.com" 
       android:pathPrefix="/newcars/engines/" 
       android:scheme="http"/> 

      <data 
       android:host="newengine" 
       android:pathPattern="/..*/..*/..*" 
       android:scheme="sample"></data> 

     </intent-filter> 
    </activity> 

第二URL http://www.sample.com/usedcars/engines/9876543 其活性

<activity 
     android:name=".ui.activities.UsedCarEngineDetailsActivity" 
     android:label="@string/usedCars" 
     android:screenOrientation="sensorPortrait"> 
     <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:host="sample.com" 
       android:pathPrefix="/usedcars/engines/" 
       android:scheme="http"/> 
      <data 
       android:host="www.sample.com" 
       android:pathPrefix="/usedcars/engines/" 
       android:scheme="http"/> 
      <data 
       android:host="usedengine" 
       android:pathPattern="/..*/..*/..*" 
       android:scheme="sample"></data> 
     </intent-filter> 
    </activity> 

回答

0

嘗試把你的scheme="sample"數據在一個單獨的意圖過濾器。這看起來像一個錯誤,但有時Android會忽略路徑前綴,當另一個出現並且爲空或帶有通配符時。

您也可以使用host="*sample.com"來匹配sample.comwww.sample.com

防爆你的第一個活動:

<activity 
    android:name=".ui.activities.NewCarModelEngineActivity" 
    android:label="@string/newCars" 
    android:screenOrientation="sensorPortrait"> 

    <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="*sample.com" 
      android:pathPrefix="/newcars/engines/" /> 

    </intent-filter> 

    <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="sample" 
      android:host="newengine" 
      android:pathPattern="/..*/..*/..*" /> 

    </intent-filter> 

</activity> 
+0

我只是去嘗試和它沒有工作,但它仍然顯示兩個活動。 –