Android 主机意图在通配符上过滤



是否可以在 android:host 属性上使用通配符?

像这样:

        android:host="*.site.com"
        android:pathPattern=".*"
        android:pathPrefix="/m/"
        android:scheme="http" />

甚至

        android:host="*.site.*"
        android:pathPattern=".*"
        android:pathPrefix="/m/"
        android:scheme="http" />

是的。在阅读了IntentFilter.AuthorityEntry.match()的Android代码后,我可以看到有一种方法可以在主机上放置通配符,但只能匹配host的开头。规则如下:

  • 将 * 作为主机的第一个字符。
  • 将主机的其余部分写入到最后。

这将起作用

    android:host="*site.com"
    android:pathPattern=".*"
    android:scheme="http" />

它将捕获以下链接:

  • www.site.com
  • site.com
  • mail.site.com

另一方面,下面的一个不起作用

    android:host="*.site.*"
    android:pathPattern=".*"
    android:scheme="http" />

最新更新