我有一个url,例如。https://www.mobilePhoneSystem.com/{user}/registerDate/{date}。因此{user}
路径前缀是动态的。我只需要处理包含registerDate
的深度链接。我在我的清单上写了这样的
<!-- Deep linking-->
<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="https"
android:host="/www.mobilePhoneSystem.com"
android:pathPrefix="/registerDate" />
</intent-filter>
</activity>
但它不会触发。当我在mainfest中添加任何用户时,例如pathPrefix=/user111/registerDate
,它会触发并正常工作。但是用户是动态的。那么我该如何处理这种类型的深度链接呢?
这应该适用于您:
android:pathPattern="/.*/registerDate/.*/"
解释:。强制执行";任何字符中的一个";。.*强制执行";任何字符的任何数字(或没有!(";。
将这两者结合起来,..*强制执行";任何数量的任何字符,但必须提供至少一个";
您可以在此处查看navGraphs
在导航图
<deepLink
android:id="@+id/deepLink"
app:uri="mobilePhoneSystem.com/{userId}/registerDate" />
<argument
android:name="userId"
app:argType="string"/>
您可以使用库,它将为您解决github.com/airbnb/DeepLinkDispatch问题您甚至可以直接获得您的{用户}和{日期},而无需任何额外的麻烦