Отображение карты Google в приложении BlackBerry WebWorks - PullRequest
2 голосов
/ 06 марта 2011

Я пытаюсь отобразить карту Google из приложения WebWorks. Вот полный 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>

Внутри приложения просто отображается серое поле, в котором должно отображаться приложение.

Обратите внимание, что код в основном извлекается из источника страницы этого примера , которая связана с здесь .

Есть идеи? Мой лучший выбор - прибегнуть к тому, чтобы Google доставлял статические изображения, визуализируемые динамически (например, эта техника ), или мне чего-то не хватает, чтобы получить реальную вещь?

Кстати, я попытался пролистать стек вызовов JS для gmaps и добавить каждый домен в список разрешений приложения. У меня есть записи разрешений (как http, так и https) для gmaptiles.co.kr, google.com, googleapis.com и gstatic.com.

Ответы [ 5 ]

1 голос
/ 08 апреля 2011

Ваш код в порядке, просто позаботьтесь о файле config.xml, обеспечивающем доступ к нужным доменам, это работает для меня:

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

Наконец, это работает только на BB6 ...

1 голос
/ 07 апреля 2011

Я работаю с картами Google, и он отлично работает с браузером BB версии 6, но не в 5 (div только серый).Это с JQuery 1.5.1.

Я использую для тестирования, карты Google также используют другие домены.

1 голос
/ 20 марта 2011

Какую версию симулятора вы используете?В версиях до 0.9.4 существовала известная проблема , которая вызывала проблемы при передаче параметров по URL-адресу и при доступе к локальным файлам.Вы можете попробовать связать с внешней библиотекой JQuery, чтобы исключить последнюю точку (не забудьте добавить для нее <access> элементов)?

Можете ли вы опубликовать элементы <access>, которые вы определили в вашей конфигурации?.xml?Мне было интересно, нужно ли вам subdomains="true" или что-то в этом роде?

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

Кроме того, я предлагаю вам убирать контент со страницы, пока что-то не появится, например, удалить строку meta name="viewport" и перейти отесть ...

0 голосов
/ 30 апреля 2011

установить z-индекс div карты на 0 для BB OS 5

0 голосов
/ 21 марта 2011

Хорошо, я получил ответ на вашу проблему, я думаю!Попробуйте использовать JQuery 1.5 вместо 1.5.1.JQuery 1.5.1, кажется, сломан в WebWorks для меня, что довольно глупо!

...