深层链接 - 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。
所以我的 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。