2011-11-16 45 views
9

我有一個PhoneGap iOS應用程序,並有這個HTML不會在應用程序中顯示地圖。我在Safari或FF中完美地看到了地圖,但在應用程序中卻沒有。我怎樣才能使這個工作?谷歌地圖不會顯示在Phonegap iOS應用程序

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

    <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
    <script type="text/javascript"> 

     $(document).ready(function(){ 
        var initialLocation = new google.maps.LatLng(37.654,-77.980); 
         var myOptions = { 
             zoom: 12, 
             center: initialLocation, 
             mapTypeId: google.maps.MapTypeId.ROADMAP 
         }; 
         var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
      }); 
</script> 
</head> 
<body> 
<div data-role="content"> 
    <!--images go here --> 
    <div class="img_shadow" style="padding:4px;"> 
        <div id="map_canvas" style="height:130px;"></div> 
    </div> 
</div>  
</div><!-- /page --> 

</body> 

回答

13

PhoneGap具有用於外部URL /主機的白名單系統。

從維基:

此外,最新的代碼有新的白名單功能。如果您是 引用外部主機,則必須在「ExternalHosts」鍵下的 PhoneGap.plist中添加主機。通配符都可以。因此,如果您連接到「http://phonegap.com」,則必須將 「phonegap.com」添加到列表中(或使用通配符「* .phonegap.com」,其中 也將與子域名匹配) 。

上面的代碼段有幾個外部主機在它:

  • maps.google.com
  • code.jquery.com

也許嘗試加入 「*」 來ExternalHosts首先確定這不是問題,然後在工作後添加更多特定的主機。

11

您必須將谷歌地圖想要加載的所有內容添加到外部主機列表中。 我增加了以下內容,它爲我工作得很好:

  • * .google.com
  • * .googleapis.com
  • * .gstatic.com
0

我有同樣的問題與主機,但您的「* .googleapis.com」解決方案工作。但地圖仍然沒有出現,因爲我沒有API密鑰,這解決了我的問題。希望它可以幫助你,因爲在你的代碼中你沒有API密鑰。

+2

Google地圖Javascript-API不再需要API密鑰。 –