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