2016-05-25 12 views
0

Ich versuche, tiefe Verknüpfung in meiner Anwendung zu implementieren. Android patternPath Deeplinking

Dies sind die 2 Urls:

Url1: http://www.example.com/games/randomtext-Spiel -randomno

Url2: http://www.example.com/games/randomno-Partituren randomscore/

Wie ersichtlich, der erste Teil der beiden Urls lösen zu Gleiches Muster. Gibt es eine Möglichkeit, zwischen zwei Mustern in diesem Fall zu unterscheiden, so dass jedes die Anforderung individuell erfüllt. Ich habe verschiedene SO-Links durchlaufen und viele Muster ausprobiert, aber das Problem ist, dass das für url1 ausgewählte Muster automatisch auch URL2 auflöst. Spiel und Noten sind Konstanten in den oben genannten URLs, also möchte ich mit ihnen zu unterscheiden. Danke im Voraus.

Antwort

1

Url1: http://www.example.com/games/randomtext-game-randomno/

 <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="www.example.com" 
       android:pathPattern="\\/games\\/.*game.*\\/.*"/> 
     </intent-filter> 

Url2: http://www.example.com/games/randomno-scores/randomscore

 <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="www.example.com" 
       android:pathPattern="\\/games\\/.*scores\\/.*"/> 
     </intent-filter> 
1

Wenn alle Links unterscheiden sich auf dem gleichen Niveau (nach/Spiele) dann während der uri Parsen Sie etwas tun können :

Uri uri = getIntent(). GetData(); String Kategorie = uri.getPathSegments(). Get (1);

Kategorie wird Randomtext-Spiel-Randomno für Url1 und Randomno-Scores für Url2 sein.

Mehr auf getPathSegments() https://developer.android.com/reference/android/net/Uri.html

+0

Ihr Ansatz ist richtig, aber dies wird Java-Code. Ich hatte gehofft, dies auf XML-Ebene zu lösen, aber es scheint keinen Weg dazu zu geben. Wie auch immer, ich löste mein Problem mit einer durchscheinenden Aktivität und löste die Tiefenverbindungen daraus, um zu der gewünschten Aktivität zu gelangen. –