我正在尝试在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>
在应用程序中,它只显示应用程序应显示的灰色框。
请注意,代码主要来自this example page的来源,该来源与here相关联。
有什么想法吗?我最好的选择是让谷歌提供动态呈现的静态图像(即this technique),还是有些东西我不知道是为了得到真实的东西?
顺便说一下,我试图抓取gmaps的JS调用堆栈,并将每个域添加到应用程序权限列表中。我有gmaptiles.co.kr,google.com,googleapis.com和gstatic.com的权限条目(http和https)。
答案 0 :(得分:1)
您使用的是什么版本的模拟器? 0.9.4之前的版本中有known issue,当在URL上传递参数时以及访问本地文件时会出现问题。您可以尝试链接到外部JQuery库以排除最后一点(不要忘记为其添加<access>
元素)?
您可以在config.xml中发布已定义的<access>
元素吗?我想知道你是否需要subdomains="true"
或类似的东西?
<access subdomains="true" uri="http://maps.google.com/maps/api/js"/>
除此之外,我建议您继续从页面中删除内容,直到出现某些内容,例如:删除meta name="viewport"
行并从那里开始......
答案 1 :(得分:1)
我正在使用谷歌地图,它使用BB浏览器版本6运行正常,但不在5(div只是灰色)。这与JQuery 1.5.1。
我用于测试,谷歌地图也使用其他域名。
答案 2 :(得分: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 ......
答案 3 :(得分:0)
好吧,我想到了你的问题的答案!尝试使用JQuery 1.5而不是1.5.1。对于我来说,JQuery 1.5.1似乎在Web上被打破了,这非常蹩脚!
答案 4 :(得分:-1)
为BB OS 5设置map div z-index为0