Android patternPath深层链接

时间:2016-05-25 06:25:38

标签: android pattern-matching deep-linking

我正在尝试在我的应用程序中实现深层链接。

这是2个网址:

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

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

很明显,两个网址的初始部分都解析为相同的模式。在这种情况下,有没有办法区分两种模式,以便每种模式单独满足要求。 我已经浏览了各种SO链接并尝试了很多模式,但问题是为url1选择的模式也会自动解析url2。 游戏得分是以上网址中的常量,所以我想区分使用它们。提前谢谢。

2 个答案:

答案 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

的更多信息