Intent过滤器中的路径模式中的“或”

时间:2015-08-17 08:56:07

标签: android pattern-matching intentfilter

我怎么能说链接必须是“https://www.example.org/kk/article/Details”或“https://www.example.org/ru/article/Details”或“https://www.example.org/en/article/Details

需要在下面的代码中找出路径模式中的“kk或en或ru”部分

   <intent-filter android:label="login">
    <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.example.org"
                        android:pathpattern="/kk or en or ru/article/Details" />
                </intent-filter>

4 个答案:

答案 0 :(得分:4)

android:pathpattern并不支持普通正则表达式所做的所有规则。有关更多信息,请阅读this。唯一的方法就是这样:

<intent-filter android:label="login">
    <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.example.org" android:pathpattern="/kk/article/Details" />
    <data android:scheme="https" android:host="www.example.org" android:pathpattern="/en/article/Details" />
    <data android:scheme="https" android:host="www.example.org" android:pathpattern="/ru/article/Details" />
</intent-filter>

答案 1 :(得分:1)

您需要定义所有类型,即您需要为每个路径值指定数据标记。

答案 2 :(得分:1)

<intent-filter android:label="login">
    <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.example.org" />
android:pathpattern="/kk/article/Details" />
android:pathpattern="/en/article/Details" />
android:pathpattern="/ru/article/Details" />

答案 3 :(得分:0)

这是一个老问题但可能对新用户有用。有一个更简单的解决方案是:

<intent-filter android:label="login">
    <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.example.org" 
          android:pathpattern="/.*/article/Details" />
</intent-filter>