我正在尝试在我的应用程序中实现深层链接。
这是2个网址:
Url1:http://www.example.com/games/randomtext- 游戏 -randomno
Url2:http://www.example.com/games/randomno- 得分 / randomscore
很明显,两个网址的初始部分都解析为相同的模式。在这种情况下,有没有办法区分两种模式,以便每种模式单独满足要求。 我已经浏览了各种SO链接并尝试了很多模式,但问题是为url1选择的模式也会自动解析url2。 游戏和得分是以上网址中的常量,所以我想区分使用它们。提前谢谢。
答案 0 :(得分: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 :(得分:1)
如果所有链接在同一级别(在/ games之后)不同,那么在解析uri时你可以这样做:
Uri uri = getIntent().getData();
String category = uri.getPathSegments().get(1);
对于Url1和,类别将是randomtext-game-randomno Url2的randomno-scores。
有关getPathSegments()https://developer.android.com/reference/android/net/Uri.html
的更多信息