Google地图不会在Phonegap iOS App中显示

时间:2011-11-16 03:15:31

标签: html ios google-maps-api-3 cordova

我有一个PhoneGap iOS应用程序,并且此HTML不会在应用程序中显示地图。我在Safari或FF中完全看到了地图,但在应用程序中却没有。我怎样才能让它发挥作用?

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

3 个答案:

答案 0 :(得分:13)

PhoneGap拥有外部网址/主机的白名单系统。

来自维基:

  

此外,最新代码具有新的白名单功能。如果你是   引用外部主机,您必须添加主机   PhoneGap.plist下的“ExternalHosts”键。通配符都可以。因此,如果   你要连接到“http://phonegap.com”,你必须添加   “phonegap.com”到列表中(或使用通配符“* .phonegap.com”)   也会匹配子域名。)

上面的代码段中有几个外部主机:

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

也许尝试向ExternalHosts添加“*”以确保不是问题,然后在其工作时添加更多特定主机。

答案 1 :(得分:11)

您必须将Google地图要加载的所有内容添加到外部主机列表中。 我添加了以下内容,它对我来说很好用:

  • *。google.com
  • *。googleapis.com
  • *。gstatic.com

答案 2 :(得分:0)

我遇到了与主机相同的问题,但您的“* .googleapis.com”解决方案有效。但是地图仍然没有出现,因为我没有API密钥,这解决了我的问题。希望它对您有所帮助,因为在您的代码中您没有API密钥。