2012-05-29 25 views
1

我正嘗試創建一個簡單的應用程序,它使用Google地圖顯示用戶搜索的地點地圖。我在Eclipse中創建了一個Phonegap項目,它在Android和iPhone中運行得非常好,但是地圖不會在黑莓中渲染。我正在使用的Blackberry測試版是Bold 9700,它已經從OS v5升級到OS v6。我修改了我的config.xml以允許移動設備訪問「*」子域名。當我運行我的代碼時,我使用我的密鑰撥打Google地圖,並確保包含回調函數,以便在加載Google地圖後繼續執行代碼。黑莓手機上的Phonegap和Google地圖

問題是,當應用程序在黑莓Bold上啓動時,地圖頁面加載並且完全沒有任何內容。另一方面,當地圖頁面在Android和iPhone平臺上加載時,我發現該回調已被谷歌地圖調用。我真的不知道爲什麼這個問題只發生在黑莓手機上......我研究過這個問題只是爲了找到我已經嘗試過的建議。我知道我錯過了一些東西,但我無法弄清楚它是什麼。

這是我的HTML代碼:

<body onload="init()"> 
    <div id="map_canvas"> 
    </div> 
</body> 

,這是我的Javascript代碼:

function init(){  
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "http://maps.googleapis.com/maps/api/js?key=GoogleMapKey&sensor=false&callback=codeAddress"; 
    document.body.appendChild(script); 
} 

在我codeAddress回調方法,我做的第一件事是alert("hello")只是爲了確保codeAddress已被調用。在Android和iPhone上,我看到了警報。然後我將地圖分配給div元素。我遇到的問題是,Blackberry似乎沒有聯繫Google地圖,因此在Google地圖加載完成時不執行回調。

我很好奇,所以我也嘗試過一個靜態地圖,我也沒有任何運氣。是否有一些我忘記的權限?這是我在我的config.xml:

<access subdomains="true" uri="http://gstatic.com"/> 
    <access subdomains="true" uri="http://google.com"/> 
    <access subdomains="true" uri="http://googleapis.com"/> 
    <access subdomains="true" uri="*"/> 

我也讀了BB OS V5不支持谷歌地圖,以及操作系統的新版本,因此升級後的黑莓大膽試驗裝置。

回答

1

事實證明,在構建'ant blackberry build'命令時,build命令將查找config.xml文件以設置適當的權限和訪問權限。 Phonegap的在線構建網站也使用config.xml來正確配置應用程序,但這兩個config.xml文件的語法並不完全相同。我在那裏:

<access subdomains="true" uri="http://gstatic.com"/> 
    <access subdomains="true" uri="http://google.com"/> 
    <access subdomains="true" uri="http://googleapis.com"/> 
    <access subdomains="true" uri="*"/> 

我應該有

<access subdomains="true" origin="http://www.gstatic.com"/> 
    <access subdomains="true" origin="http://www.google.com"/> 
    <access subdomains="true" origin="http://www.googleapis.com"/> 

這些語法嘗試XML文件類似,但不完全相同。只要我做了這個改變,我就可以得到一張靜態地圖。我的下一步是嘗試獲得一張動態地圖,但至少我知道一張靜態地圖可以工作。

這就是我所遵循的link來得出這個結論