2016-05-25 3 views
0

Я пытаюсь реализовать глубокую привязку в своем приложении.Android patternPath deeplinking

Эти 2 URLs:

url1: http://www.example.com/games/randomtext-игра -randomno

URL2: http://www.example.com/games/randomno-забивает/randomscore

Как видно, начальная часть обоих URLs постановляем такой же рисунок. Есть ли способ дифференцировать два шаблона в этом случае, чтобы каждый выполнял требование индивидуально. Я прошел через различные ссылки SO и пробовал много шаблонов, но проблема в том, что шаблон, выбранный для url1, автоматически разрешает url2. игра и оценки являются константами в вышеуказанных URL-адресах, поэтому я хочу различать их использование. Заранее спасибо.

ответ

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

Если все ссылки отличаются на том же уровне (после/игр), то при разборе Ури вы можете сделать что-то подобное :

Uri uri = getIntent(). GetData(); Категория строк = uri.getPathSegments(). Get (1);

категория будет случайной-игровой случайной для Url1 и randomno-score для Url2.

Больше на getPathSegments() https://developer.android.com/reference/android/net/Uri.html

+0

Ваш подход является правильным, но это потребует Java кода. Я надеялся разрешить это на уровне xml, но, похоже, это не так. Во всяком случае, я разрешил свою проблему, используя прозрачную активность, и разрешил глубокие ссылки от нее, чтобы перейти к желаемой деятельности. –

Смежные вопросы