2

WebWorks 앱에서 Google지도를 표시하려고합니다. 다음은 응용 프로그램에서 해당 페이지의 전체 HTML은 (는 브라우저에서 잘 작동 있습니다) :BlackBerry WebWorks 프로그램에 Google지도 표시

응용 프로그램 내에서
<!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> 

, 그냥 응용 프로그램이 나타납니다 회색 상자를 보여줍니다.

코드는 대부분 here에 링크 된 this example page의 출처에서 추출됩니다.

아이디어가 있으십니까? Google이 동적 이미지 (예 : this technique)를 렌더링 한 정적 이미지를 게재하도록하거나 여기에 실재물을 놓치고있는 것이 있습니까?

그런데 gmaps의 JS 호출 스택을 크롤링하고 각 도메인을 앱의 권한 목록에 추가하려고했습니다. gmaptiles.co.kr, google.com, googleapis.com 및 gstatic.com에 대한 허가 항목 (http 및 https)이 있습니다.

답변

1

어떤 시뮬레이터 버전을 사용하고 있습니까? 매개 변수가 URL에 전달되고 로컬 파일에 액세스 할 때 문제가 발생한 0.9.4 이전 버전에는 known issue이있었습니다. 당신은 마지막 점을 배제하기 위해 외부 JQuery 라이브러리에 연결을 시도 할 수있다 (그것에 대해 <access> 요소를 추가하는 것을 잊지 말라)?

config.xml에 정의한 <access> 요소를 게시 할 수 있습니까? subdomains="true" 같은 것이 필요한지 궁금합니다. 그 외에는

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

뭔가가 나타날 때까지 당신은, 예를 들어, 페이지에서 컨텐츠를 제거 계속 제안 meta name="viewport" 행을 삭제하고 거기에서 이동하십시오 ...

0

좋아, 내가 생각하는 문제에 대한 답변을 얻었습니다! 1.5.1 대신 JQuery 1.5를 사용해보십시오. JQuery 1.5.1이 나에게 꽤 절름발이 인 WebWorks에서 깨진 것 같습니다!

+0

방금 ​​찾은 또 다른 문제점 WebWorks 시스템은 아약스 요청을 탐지하는 CakePHP 시스템을 망가 트린 헤더에 아약스 기반 요청을 표시하지 않습니다. etc 태그가없는 html을 반환합니다. 이 물건을 디버깅하는 것은 재미 있지 않습니다! – Russell

1

Google지도에서 작업 중이며 BB 브라우저 버전 6을 사용하여 정상적으로 실행되지만 5에는 없습니다 (div는 회색 임). 이 JQuery 1.5.1.

테스트 용으로 사용되는 Google지도는 다른 도메인을 사용합니다.

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에이 단지 작품을

-1

BB OS 5에 대해 div div z-index를 0으로 설정합니다.

관련 문제