2

我正在尝试让 Android 的 Google-Map.api 与 Phonegap 一起使用。我无法弄清楚问题所在。到目前为止,我什么都试过了。请检查我的代码。我没有收到任何错误,我还包括了 jQueryMobile。为混乱的代码道歉。

Index.html:-包括各种东西-

谷歌.html:

   <body>
<div data-role="page" id="foo" data-theme="c">
    <div data-role="content">
        <div id="map_canvas"></div>
    </div>
</div>
<script type="text/javascript" src="googlemap.js"></script>
<script type="text/javascript">
    function onDeviceReady() {
        var map = new GoogleMap();
        map.initialize();
    }
</script>

googlemap.js 与本教程中看到的相同: christianengvall.se

对 Google.html 的锚超文本引用包含一个 ref="external" 属性。我不知道这是否重要。

我还在 res/xml/cordova.xml 中添加了白名单(up-2-date?)

我的清单文件具有 android 可能拥有的所有权限。(暂时地)

当我在真实设备(三星 Galaxy S3)上运行/调试此页面时,我得到一个白屏。

一个可能的问题可能是 Google.html 的数据角色属性。也许有类似 data-role="mapload" 的东西。

如果您需要更多信息,请询问我。

//编辑

它仍然不起作用。我找到了另一种解决方案,但这是一个大麻烦。如果有人能够上传一个好的代码,请去吧

4

2 回答 2

2

如果你的 CSS 正确,你的代码应该没问题,禁用脚本,然后添加到 CSS 文件中:

#map_canvas {background: red;}

看到红框了吗?如果没有,那么给它一个高度,height: 100%如果您不使用页脚,因为它在内容上方流动(标题是可以的),那么它在 jquerymobile 中是一个很好的高度。如果您确实使用页脚并且想要 100% 的高度,请使用$("#map_content").css("height", ($("*[data-rel=content]").height()-$("*[data-rel=footer]").height())+"px");

其他一些指针:

如果您遇到问题,请尝试adb logcat(如果您不喜欢终端,则 Eclipse 中有一个窗口),它可以为您提供一些指导。

rel=external据我所知,该属性无关紧要。

我使用的白名单是:

<access origin="http://127.0.0.1*"/> <!-- allow local pages -->

<access origin="http://google.com" subdomains="true"/>
<access origin="http://gstatic.com" subdomains="true"/>
<access origin="https://google.com" subdomains="true"/>
<access origin="https://gstatic.com" subdomains="true"/>
于 2012-10-02T13:44:53.723 回答
0

另一个可能的问题:你复制了吗

function onBodyLoad(){      
    document.addEventListener("deviceready", onDeviceReady, false);
}

例子

于 2012-10-02T13:50:44.987 回答