如何避免运行时加载谷歌地图api Javascript- phonegap?

时间:2012-08-31 13:29:56

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

我正在创建一个使用谷歌地图显示路线和用户位置的手机应用程序。我通过添加

使用了默认的google api
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

我观察到这会导致应用程序初始化速度变慢,有时甚至会在移动设备连接缓慢时崩溃。我知道除非加载了所有脚本,否则应用程序将无法启动。

我尝试从网址http://maps.google.com/maps/api/js?sensor=false下载JavaScript并在本地存储,但这有时会导致地图加载失败。

是否有可以存储在应用程序中的等效脚本?或者我们可以在加载应用程序后延迟加载脚本吗?

2 个答案:

答案 0 :(得分:2)

您可以异步加载API,就像在this example上一样。就像你可以在你的javascript中决定何时加载它,(调用loadScript()),然后在那之后初始化地图。

请注意,该示例使用了一个回调参数,该参数是在加载API完成时要调用的函数的名称。

答案 1 :(得分:0)

您可以使用java脚本异步进程。此方法基于回调响应。

谷歌地图javascript api提供异步加载link

function initialize() {
  var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(-34.397, 150.644)
  };

  var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'http://maps.google.com/maps/api/js?sensor=true&callback=initialize';
  document.body.appendChild(script);
}

window.onload = loadScript;