【问题标题】:How to avoid runtime loading of googlemap api Javascript- phonegap?如何避免 googlemap api Javascript-phonegap 的运行时加载?
【发布时间】:2012-08-26 07:59:16
【问题描述】:

我正在创建一个 phonegap 应用程序,它使用谷歌地图来显示方向和用户位置。我通过添加

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    你可以使用java脚本异步处理。该方法基于回调响应。

    Google maps 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;
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-06
        • 2015-04-20
        • 1970-01-01
        • 2020-01-30
        • 1970-01-01
        • 2016-05-15
        • 1970-01-01
        相关资源
        最近更新 更多