我正在向我的 android 应用程序添加一个意图过滤器,我希望它能够捕捉到http://www.somedomain.com/[numericValue]的请求。如果路径是数字,我只想抓住它,但如果它有文本,我不在乎。
我尝试了 [0123456789]* 的 pathPattern,但没有奏效。这可能吗?
我正在向我的 android 应用程序添加一个意图过滤器,我希望它能够捕捉到http://www.somedomain.com/[numericValue]的请求。如果路径是数字,我只想抓住它,但如果它有文本,我不在乎。
我尝试了 [0123456789]* 的 pathPattern,但没有奏效。这可能吗?
pathPattern
不是完整的正则表达式。相反,它使用“简单 glob”,其中*
表示前一个字符的零个或多个 - 在您的情况下,零个或多个]
字符。
在我的脑海中,我看不出如何将所需的模式转换为可以轻松匹配“简单 glob”的东西。
我已经测试了 KTibow 样本,但它不起作用。
但是破解它的一种方法是可以添加多个数据元素并像这样解决它,所以你可以得到所有以数值开头的案例。它并不完美,但似乎是基于文档的唯一选择,并且似乎无法执行 /0*1* 之类的操作,因为由于某种原因,它在测试时仅匹配 /1 和 /01。
<data
android:host="example.com"
android:pathPattern="/0.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/1.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/2.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/3.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/4.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/5.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/6.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/7.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/8.*"
android:scheme="https" />
<data
android:host="example.com"
android:pathPattern="/9.*"
android:scheme="https" />