2013-02-22 34 views
3

我試圖讓PhoneGap 2.4.0 FileTransfer在Android 4.2上工作。Phonegap:源URL不在白名單

我得到一個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

我設法通過使用PhoneGap 1.9.0而不是2.4.0來解決問題。使用更高版本時會返回錯誤。

我也設法通過不使用CordovaWebView,但通過使用PhoneGap構建得到它的工作。但對我而言這不可行。

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

這個白名單基本上整個互聯網:

2

,如果你改變你的XML到它應該工作。如果您只想列出您的域名,請使用更具體的內容。在此處看到詳細信息: http://docs.phonegap.com/en/2.4.0/guide_whitelist_index.md.html

「origin」屬性現在是「uri」。

+0

真的嗎?我剛剛檢查了代碼,Config類仍然在尋找「access-> origin」。是否有與iOS不匹配? – 2013-02-22 15:41:17

+0

啊拍!你說的對西蒙,我看着錯誤的文檔。 :)讓我編輯並修復此評論。 – 2013-02-22 19:30:03

+0

我也在做同樣的事情,但它仍然無法正常工作。我使用'uri'和'origin'進行了檢查。我在config.xml中輸入了整個url本身,但它並沒有下載。它給出了相同的消息每次 - 「源URL不在白名單:'http://www.myurl.whatever'」 – PrasadW 2013-03-05 11:21:51

4

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

Config.init(this); 

在你活動的onCreate。否則,所有白名單將失敗。經過兩個小時的痛苦挖掘才發現這一點。

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"/>