Это общий недостаток в глубоких ссылках Android, который поддерживает только символы регулярного выражения *
и .
.Это упомянуто в Adnroid документах и можно наблюдать в исходном коде .
Из документов
Для получения дополнительной информации об этих трех типахшаблоны, см. описания PATTERN_LITERAL, PATTERN_PREFIX и PATTERN_SIMPLE_GLOB
в классе PatternMatcher.
PATTERN_SIMPLE_GLOB предназначен для регулярных выражений и говорит только о совпадении
/ ** *Тип шаблона: данный шаблон интерпретируется с помощью * простого синтаксиса glob для сопоставления со строкой, с которой он проверен.* В этом синтаксисе вы можете использовать символ '*'
, чтобы сопоставить ноль или * больше вхождений символа непосредственно перед ним.Если символ * перед ним '.'
, он будет соответствовать любому символу.Символ * '\'
может быть использован как побег.По сути, это обеспечивает только часть подстановочного знака '*' * в обычном регулярном выражении.* /
public static final int PATTERN_SIMPLE_GLOB = 2;
Таким образом, допускаются только *
, .
и \
.Использование другого литерала шаблона +,?
и т. Д .;приведет к ошибке.
Либо вы можете использовать свой рабочий параметр, либо вы можете использовать
https://example.com/./....*
....*
как минимум 3 символа, тогда .*
означает 0 или более символов
<activity
android:name="packagename.ActivityName" >
<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="http"
android:host="www.example.com"
android:pathPattern="/./....*" />
<!-- note that the leading "/" is required for pathPrefix-->
</intent-filter>
</activity>