【问题标题】:FireFox-OS / Google Maps V3 : Test on real phone "google is not defined"FireFox-OS / Google Maps V3:在真机上测试“谷歌未定义”
【发布时间】:2013-12-04 23:14:59
【问题描述】:

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

问题是如果想在真实设备上尝试我的代码,由于“未定义谷歌”,地图不会显示。

我搜索并找到这个 anwser :Firefox OS CSP restrictions on privileged apps 并且 awnser 让我认为如果我不向市场提交我的应用程序,我将无法使用真实设备尝试我的代码......我必须使用一个用于测试的模拟器......我说得对吗?

是否有任何解决方法来测试代码?因为我发现验证您正在开发用于测试地图的代码真的很奇怪......?

一个很奇怪的事情是这个项目https://github.com/abhishekvp/Anchor-n-Explore 似乎在我的手机上运行得很好......

这是我写的代码:

index.html:

<script type="text/javascript"
  src="http://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=true"></script>

在我使用 hello world 教程的简单代码之后。

问候

【问题讨论】:

标签: google-maps-api-3 firefox-os


【解决方案1】:

MDN 说 [“从 Gecko 15.0 开始,内容安全策略不再有任何默认限制”]。如果您的应用在模拟器上运行,您可以[将其推送到设备],它应该可以运行。 The CSP policy of FirefoxOS 不允许特权应用加载外部 Javascript 文件。 This tutorial 使用 iframe。

  1. 创建一个单独的 html 文件来加载谷歌地图库,并将其放在服务器上。
  2. 将 iframe 放入 FirefoxOS 特权应用程序的 html 文件中。
  3. 可以使用 postMessage 在地图上绘制一些东西。

    var mapIframe = document.getElementById('mapIframe'); mapIframe.contentWindow.postMessage("CommandToDrawSomething", '*');

【讨论】:

    【解决方案2】:

    在您的应用程序中,即使使用模拟器,我也看不到任何地图,但我确定这是加载问题(您尝试在加载之前使用地图),因为脚本是加载程序,而不是脚本本身。你应该像这样异步加载它

    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,并添加您要使用的脚本版本,这样以后就不足为奇了。

    【讨论】:

    • 很抱歉,我尝试了你的提议,但它仍然不起作用......脚本根本没有加载......即使我在我的 dom 中看到它,如果写 'google ' 在网络控制台中,我是 'google 未定义'!但是使用 chrome 或模拟器,它可以工作......
    • 如果是这样,我现在不知道。让我再看一下代码。
    • 对于我正在为我的手机使用 OSM 的解决方法......但如果你找到解决方案,我很想测试它:)
    • 我用 firefox os emulator 1.3 重现了这个问题
    猜你喜欢
    • 2011-10-03
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多