2011-11-16 74 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密钥。 –