Google maps api 3 FireFox OS/Google Maps V3:在真实手机上测试“Google未定义”

Google maps api 3 FireFox OS/Google Maps V3:在真实手机上测试“Google未定义”,google-maps-api-3,firefox-os,Google Maps Api 3,Firefox Os,我正在为Firefox OS编写一个应用程序,我想集成一个Google Maps V3 问题是,如果想用真实的设备来尝试我的代码,地图不会显示,因为谷歌没有定义 我搜索并找到了这个anwser:awnser让我想到,如果我不向市场提交我的应用程序,我就无法在真正的设备上尝试我的代码。。。我必须用模拟器来测试。。。。我说得对吗 测试代码有什么变通方法吗?因为我发现,验证您为测试映射而开发的代码是非常奇怪的 一件很奇怪的事情是,这个项目似乎在我的手机上运行得很好 以下是我编写的代码: index.h

我正在为Firefox OS编写一个应用程序,我想集成一个Google Maps V3

问题是,如果想用真实的设备来尝试我的代码,地图不会显示,因为谷歌没有定义

我搜索并找到了这个anwser:awnser让我想到,如果我不向市场提交我的应用程序,我就无法在真正的设备上尝试我的代码。。。我必须用模拟器来测试。。。。我说得对吗

测试代码有什么变通方法吗?因为我发现,验证您为测试映射而开发的代码是非常奇怪的

一件很奇怪的事情是,这个项目似乎在我的手机上运行得很好

以下是我编写的代码:

index.html:

<script type="text/javascript"
  src="http://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=true"></script>
在我使用hello world教程的简单代码之后

MDN称[从Gecko 15.0开始,内容安全策略不再有任何默认限制]。如果你的应用程序在模拟器上运行,你可以[把它推到设备上],它应该可以运行。 不允许特权应用加载外部Javascript文件。使用iframe

创建一个单独的html文件,加载GoogleMaplibs,并将其放在服务器上。 将iframe放入FirefoxOS特权应用程序的html文件中。 在地图上用postMessage可以画一些东西

var mapIframe=document.getElementById'mapIframe'; mapIframe.contentWindow.postMessageCommandToDrawSomething,“*”


我在你的应用程序中没有看到任何映射,即使使用模拟器,但我确信这是一个加载问题,你在加载之前尝试使用映射,因为脚本是一个加载程序,而不是脚本本身。您应该像这样异步加载它

function initialize() {
   //Do your map stuff
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 
      'https://maps.googleapis.com/maps/api/js?v=3&sensor=true&callback=initialize';
  document.body.appendChild(script);
}

window.onload = loadScript;

您还应该使用https,而不是http,并添加您想要使用的脚本版本,这样以后就不足为奇了。

如果在模拟器上运行,在真实设备上进行测试应该不会有任何问题。问题应该在其他地方,但如果没有更多的代码,很难说。你可以在这里输入我的代码:,有关更多信息,index.html:map类它是angular JS:很抱歉,我尝试了你的建议,但它仍然不起作用。。。脚本根本没有加载。。。即使我在我的dom中看到它,如果在web控制台中写“google”,我就是“google未定义”!但是用chrome或者模拟器,它可以工作……如果是这样,我现在不知道。让我再看一看代码。对于我的手机,我正在使用OSM解决方案。。。但是如果你找到了一个解决方案,我就开始测试它:我用firefox os emulator 1.3重现这个问题