Phonegap:源URL不在白名单中

时间:2013-02-22 11:30:16

标签: android cordova

我正在尝试将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"/>

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

有什么想法吗?我可以检查是否正在解析cordova.xml吗?

编辑:我正在使用CordovaWebView。

4 个答案:

答案 0 :(得分:4)

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

Config.init(this);

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

答案 1 :(得分:2)

如果您将XML更改为:

,它应该有效
<access origin="*" subdomains="true"/>

这个白名单基本上列出了整个互联网。如果您只想将域名列入白名单,请使用更具体的内容。详情请见: http://docs.phonegap.com/en/2.4.0/guide_whitelist_index.md.html

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

看起来您必须非常具体地说明如何在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"/>