0

所以我的目标是深度链接任何具有这种格式的 URL MyWebsite/en/flyers/ {StoreName} -flyer- {StoreId}

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

这是我下面的清单,您可以快速尝试。

<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 不是真正的正则表达式。

4

1 回答 1

0

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

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

于 2018-08-12T13:27:04.640 回答