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

Deep linking - PathPattern regex limitations

所以我的 objective 深入 link 任何具有这种格式的 URL MyWebsite/en/flyers/{StoreName}-传单-{StoreId}

当 StoreName 没有减号时,urlhttps://www.salewhale.ca/en/flyers/walmart-flyer-2864工作正常。 但是在这种情况下 https://www.salewhale.ca/en/flyers/canadian-tire-flyer-25659 深度 linking 将不起作用,OS 只会打开浏览器,而不是为具有 的任何 link 选择 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 不是真正的正则表达式。

我回答的很晚但是...

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