3

我正在尝试让 PhoneGap 2.4.0 FileTransfer 在 Android 4.2 上运行。

我收到一条 Logcat 警告消息:

The Source URL is not in white list: 'http://api.etc.com'

在我的 res/xml/cordova.xml 里面我有

<access origin=".*" subdomains="true"/>

这应该将所有 URL 列入白名单,但没有运气,我仍然收到相同的警告和 FileTransfer 错误 3。

有任何想法吗?我可以检查 cordova.xml 是否正在被解析吗?

编辑:我正在使用 CordovaWebView。

4

4 回答 4

4

如果您不使用 DroidGap,则需要:

Config.init(this);

onCreate您的活动中。否则,所有白名单都会失败。经过两个小时的痛苦挖掘后才发现这一点。

于 2013-03-12T18:01:09.013 回答
2

如果您将 XML 更改为:

<access origin="*" subdomains="true"/>

这个白名单基本上是整个互联网。如果您只想将您的域列入白名单,请使用更具体的内容。在此处查看详细信息:http: //docs.phonegap.com/en/2.4.0/guide_whitelist_index.md.html

“origin”属性现在是“uri”。

于 2013-02-22T15:23:38.007 回答
0

我设法通过使用 PhoneGap 1.9.0 而不是 2.4.0 解决了这个问题。使用更高版本时会返回错误。

我还设法通过不使用 CordovaWebView 而是使用 PhoneGap 构建来使其工作。但这在我的情况下是不可行的。

于 2013-02-22T15:10:50.250 回答
0

如果您在白名单 URL 配置中使用通配符,请不要使用子域属性。

看起来您必须非常具体地在 config.xml 中编写标签,尤其是在允许子域时 - 显然指定子域不适用于通配符,因此您需要两个标签块。

<access origin="*.google.com" />
<access origin="*.googleapis.com" />
<access origin="*.gstatic.com" />
<access origin="*.googleusercontent.com" />
<access origin="google.com" subdomains="true"/>
<access origin="googleapis.com" subdomains="true"/>
<access origin="gstatic.com" subdomains="true"/>
<access origin="googleusercontent.com" subdomains="true"/>
于 2014-05-21T18:16:03.450 回答