От Кордова Android source code:
private void _addWhiteListEntry(String origin, boolean subdomains) {
try {
// Unlimited access to network resources
if (origin.compareTo("*") == 0) {
LOG.d(TAG, "Unlimited access to network resources");
this.whiteList.add(Pattern.compile(".*"));
} else { // specific access
// check if subdomains should be included
// TODO: we should not add more domains if * has already been added
if (subdomains) {
// XXX making it stupid friendly for people who forget to include protocol/SSL
if (origin.startsWith("http")) {
this.whiteList.add(Pattern.compile(origin.replaceFirst("https?://", "^https?://(.*\\.)?")));
} else {
this.whiteList.add(Pattern.compile("^https?://(.*\\.)?" + origin));
}
LOG.d(TAG, "Origin to allow with subdomains: %s", origin);
} else {
// XXX making it stupid friendly for people who forget to include protocol/SSL
if (origin.startsWith("http")) {
this.whiteList.add(Pattern.compile(origin.replaceFirst("https?://", "^https?://")));
} else {
this.whiteList.add(Pattern.compile("^https?://" + origin));
}
LOG.d(TAG, "Origin to allow: %s", origin);
}
}
} catch (Exception e) {
LOG.d(TAG, "Failed to add origin %s", origin);
}
}
Так, очевидно, они рассматривают все, как регулярное выражение, если это не совсем *
. Вероятно, не очень хорошая идея доверять этому поведению, так как это не documented, а не в целевой задаче W3C Widget Access. (Я думаю, что это, вероятно, даже не предназначено.)
Однако .*
по-прежнему используется в шаблоне проекта PhoneGap 2.5.0, поэтому на данный момент все в порядке, пока вы остаетесь с одной версией PhoneGap.
Я бы предположил, что это выражение регулярных выражений, где '. *' Означает «соответствует нулю с N вхождения любого символа». – CommonsWare