2016-05-04 53 views
0

我正在嘗試製作簡單的地理位置應用程序。原生地理位置正常工作,座標正在進入。我很難加載谷歌地圖,like in the Simple Markers example herePhoneGap/Cordova編譯的Android應用程序不會加載外部URI

Turns out you have to whitelist external domains。沒問題,我增加了以下我的config.xml(在PhoneGap的應用程序的根目錄):

<access origin="*" /> 
<access origin="*://*.googleapis.com/*" subdomains="true" /> 
<access origin="*://*.gstatic.com/*" subdomains="true" /> 
<access origin="*://*.google.com/*" subdomains="true" /> 
<access origin="*://*.googleusercontent.com/*" subdomains="true" /> 

以防萬一,我說<platform name="android">下相同。然後我刪除它。依然沒有。

然後我讓應用程序顯示一個簡單的圖像;這是應用程序的HTML部分看起來像:

<body> 
    <span><img src="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi_hdpi.png" alt="" /></span> 
    <div id="map"></div> 
</body> 

如果我打開一個瀏覽器這個文件,這是一個-OK:

enter image description here

但是,當我編譯應用程序,並打開它在我的平板電腦,嗯哦:

enter image description here

所以它看起來像訪問權限設置不正確。圖像被破壞,googleapis.com永不加載,我的地圖永遠不會看到白天的光芒。

Here is a pastebin我的根​​3210文件。

請幫我弄清楚爲什麼android應用程序拒絕在PhoneGap/Cordova上下文中加載外部URL。

我的賭注是一些我不知道的晦澀難懂的權限。過了一會兒,我的頭撞到了牆上,真的會很感激一些幫助。提前致謝。

回答

1

鑑於您已將*列入白名單作爲出處,您甚至不需要Google。您是否嘗試過從Chrome瀏覽器中檢查應用程序?請前往chrome://在您的桌面瀏覽器中檢查,如果設備已連接到計算機,則可以從此處檢查應用程序。

檢查員的控制檯應顯示您的請求正在發生的任何錯誤。我猜你有一個阻止請求的內容安全策略。最新版本的白名單文檔位於https://github.com/apache/cordova-plugin-whitelist。在自述文件的底部,您會看到一些內容安全策略的示例。我建議在index.html中加入以下內容:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *">