深层链接 - PathPattern正则表达式限制

时间:2017-11-08 15:26:08

标签: android regex android-manifest deeplink

所以我的目标是深度链接任何具有此格式的网址 MyWebsite / EN /传单/ {STORENAME} -flyer- {STOREID}

当StoreName没有减号时,此网址https://www.salewhale.ca/en/flyers/walmart-flyer-2864 正常运行。 但是在这种情况下,https://www.salewhale.ca/en/flyers/canadian-tire-flyer-25659深层链接无法正常工作,操作系统只会打开浏览器,而不是选择StoreActivity用于任何在StoreName中包含 - 减号的链接。

在这下面我的Manifest你可以快速尝试。

<activity
        android:name=".ui.activity.StoreActivity"
        ...
        >
        <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="www.salewhale.ca"
                android:pathPattern="/fr/circulaires/.*-circulaire-.*"
                android:scheme="https"/>
            <data
                android:host="salewhale.ca"
                android:pathPattern="/en/flyers/.*-flyer-.*"
                android:scheme="http"
                />
        </intent-filter>
    </activity>

PS:我知道Android pathPattern不是真正的正则表达式。

1 个答案:

答案 0 :(得分:0)

我回答得很晚,但是...

由于您具有固定的路径模式,即MyWebsite / en / flyers / {StoreName} -flyer- {StoreId},因此您必须尝试解析活动中的路径而不是使用正则表达式来解析它。因此,当您已经知道pathPattern不是真正的正则表达式时,可以使用Java提取StoreName和StoreId而不是依赖于Regex。