2

我正在尝试从 WebWorks 应用程序中显示 Google 地图。这是应用程序中该页面的完整 HTML(请注意,它在浏览器中运行良好):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" id="viewport" content="height=device-height,width=device-width,user-scalable=no" />

    <title>Waste Management Service Request</title>

    <style type="text/css">
      body {
        min-height: 500px;
      }
      .center {
        text-align: center;
      }
      #page {
        font-family: Arial, sans-serif;
        font-size: 85%;
        width: 408px;
        margin: 0 auto;
        padding: 0 30px;
      }
      h3 {
        color: #006A3C;
      }
      #map-canvas {
        height: 300px;
      }
    </style>

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

      if (typeof(blackberry) != "undefined") {
        blackberry.system.event.onHardwareKey(blackberry.system.event.KEY_BACK, function() {
          history.back(); 
        });
      }

      $(document).ready(function(){

        var geocoder, map;
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var mapOptions = {
          zoom: 8,
          center: latlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

        address = '100 1st St., New York City, NY'; // Hardcoded for testing.
        geocoder.geocode( {'address': address}, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location
            });
          } else {
            alert("The map failed because: " + status);
          }
        });

      })
    </script>

  </head>
  <body>

    <div id="page">
      <h3>Local Map</h3>
      <div id="map-canvas"></div>
    </div>

  </body>
</html>

在应用程序中,它只显示应用程序应该出现的灰色框。

请注意,代码大部分来自此示例页面的源代码,该示例页面链接到此处

有任何想法吗?我最好的选择是让谷歌提供动态呈现的静态图像(即这种技术)还是我缺少一些东西来获得真实的东西?

顺便说一句,我试图爬过 gmaps 的 JS 调用堆栈,并将每个域添加到应用程序的权限列表中。我有 gmaptiles.co.kr、google.com、googleapis.com 和 gstatic.com 的权限条目(http 和 https)。

4

5 回答 5

1

你用的是什么版本的模拟器?在 0.9.4 之前的版本中存在一个已知问题,在 URL 上传递参数和访问本地文件时会导致问题。您可以尝试链接到外部 JQuery 库以排除最后一点(不要忘记为其添加<access>元素)?

您可以发布<access>您在 config.xml 中定义的元素吗?我想知道你是否需要subdomains="true"或类似的东西?

<access subdomains="true" uri="http://maps.google.com/maps/api/js"/>

除此之外,我建议您继续从页面中删除内容,直到出现某些内容,例如删除该meta name="viewport"行并从那里开始...

于 2011-03-20T19:24:09.637 回答
1

我正在使用谷歌地图,它使用 BB 浏览器版本 6 运行良好,但在 5 中没有(div 只是灰色的)。这与 JQuery 1.5.1。

我用于测试,谷歌地图也使用其他域。

于 2011-04-06T22:08:23.297 回答
1

您的代码没问题,只需注意 config.xml 文件,提供对正确域的访问,这对我有用:

  <access subdomains="true" uri="http://gstatic.com"/>
  <access subdomains="true" uri="http://google.com"/>
  <access subdomains="true" uri="http://googleapis.com"/>

最后,这只适用于BB6...

于 2011-04-07T21:01:14.040 回答
0

好吧,我想我得到了你的问题的答案!尝试使用 JQuery 1.5 而不是 1.5.1。对我来说,WebWorks 中的 JQuery 1.5.1 似乎被破坏了,这很蹩脚!

于 2011-03-21T01:14:13.520 回答
-1

对于 BB OS 5,将地图 div z-index 设置为 0

于 2011-04-30T10:42:20.407 回答