FireFox-OS / Google Maps V3: тест на реальном телефоне Google не определен

Я пишу приложение для Firefox OS и хочу интегрировать Google Maps V3.

Проблема в том, что если вы хотите попробовать мой код на реальном устройстве, карта не отображается из-за того, что «google не определен».

Я ищу и нахожу этот ответ: Ограничения CSP ОС Firefox для привилегированных приложений И 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.

С уважением


person jef    schedule 04.12.2013    source источник
comment
У вас не должно возникнуть проблем с тестированием на реальном устройстве, если оно работает на симуляторе. Проблема должна быть в другом месте, но трудно сказать без дополнительного кода.   -  person fharper    schedule 05.12.2013
comment
Вы можете использовать мой код здесь: github.com/binomed/CineShowTimeAngular, для получения дополнительной информации, index.html : github.com/binomed/CineShowTimeAngular/blob/master /src/main/ Класс карты (это угловой JS): github.com/binomed/CineShowTimeAngular/blob/master/src/main/ и github.com/binomed/CineShowTimeAngular/blob/master/src/main/   -  person jef    schedule 05.12.2013


Ответы (2)


MDN говорит ["Начиная с Gecko 15.0, политика безопасности контента больше не имеет никаких ограничений по умолчанию"]. Если ваше приложение работает на симуляторе, вы можете [отправить его на устройство], и оно должно работать. Политика CSP FirefoxOS не позволяет привилегированным приложениям загружать внешние файлы Javascript. В этом руководстве используется iframe .

  1. создайте отдельный html-файл, который загружает библиотеки карт Google, и поместите его на сервер.
  2. поместите iframe в html-файл привилегированного приложения FirefoxOS.
  3. Можно что-то нарисовать на карте с помощью postMessage.

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

person kazhik    schedule 05.12.2013

Я не вижу никакой карты, даже с симулятором, в вашем приложении, но я уверен, что это проблема с загрузкой (вы пытаетесь использовать карту до ее загрузки), так как скрипт является загрузчиком, а не сам скрипт. Вы должны загрузить его асинхронно, например

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 и добавить версию скрипта, которую хотите использовать, чтобы не удивляться в будущем.

person fharper    schedule 05.12.2013
comment
Извините, но я пробую ваше предложение, и оно все еще не работает... Скрипт вообще не загружается... Даже если я увижу его в своем доме, если написать "google" в веб-консоли, я был "гугл не определен" ! Но с хромом или с симулятором работает... - person jef; 06.12.2013
comment
Если да, то я понятия не имею прямо сейчас. Позвольте мне еще раз взглянуть на код. - person fharper; 07.12.2013
comment
Для моего телефона я использую обходной путь с OSM ... но если вы найдете решение, я хочу его протестировать :) - person jef; 11.12.2013
comment
Воспроизводю проблему с эмулятором firefox os 1.3 - person jef; 12.12.2013