2015-06-25 5 views
2

У меня есть проект андроида ионной/кордовой, где я пытаюсь найти местоположение для некоторых координат внутри службы; карты SDK загружается в порядке и в моей службе, у меня есть следующие:Обратный вызов geocoder.geocode никогда не вызывается в ионной кордове

var lat = 30; // example 
var lng = 32; // example 
var geocoder = new google.maps.Geocoder(); // geocoder is not undefined here 
var latlng = new google.maps.LatLng(lat, lng); 

geocoder.geocode({'location': latlng}, function(results, status) { 
    console.log("geocoder.geocode callback"); // never printed ... 
}); 

В HTML, то API загружается так:

<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?v=3&key=MOBILE_API_KEY"></script> 

Любая идея, что я делаю неправильно здесь?

[EDIT]

Я попытался удалить ключевой аргумент из загрузочного сценария URL; никаких изменений нет; доступ к приложению через браузер, geocoder.geocode работал нормально; запуская его с эмулятором Android или в устройстве Android, это не сработало. Может ли это быть связано с разрешением или что-то еще?

Кстати, мое содержание-безопасности политика устанавливается как следовать, сейчас:

[EDIT2]

Просто сделал ручку с ионным например проекта; создать проект с:

ionic start TheBlank blank 

и скопируйте код. http://codepen.io/anon/pen/RPxNaL

// add the android platform 
ionic platform add android 
// run the project on device 
ionic run android // geocode callback will not work here 
ionic serve // geocode callback will work here 
+0

трудно сказать, код, который вы дали выглядит действительным. Возможно, это что-то не так в самом коде. Можете ли вы добавить ссылку на какой-то код на jsfiddle или где-нибудь, демонстрирующий полный код, достаточно, чтобы показать, где может быть проблема? – duncan

+0

Есть ли сообщения об ошибках? –

+0

Также вы ознакомились с этим плагином? https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Geocoder –

ответ

0

Проблема была как-то связана с ионной. После использования кордовы для запуска и подражания, все начало работать. Я тестировал это с помощью шаблона ионно-стартовых карт. Для того, чтобы сделать это самостоятельно, попробуйте следующее:

ionic start MyMaps maps 
ionic platform add android 
ionic emulate android # won't work 

ionic start MyMaps maps 
cordova platform add android 
cordova emulate android # works! 

Кроме того, убедитесь, что содержание-безопасности политика имеет необходимые правила:

<meta http-equiv="Content-Security-Policy" content=" 
     default-src 'self' data: gap: 
      https://ssl.gstatic.com; 
     script-src 'self' 'unsafe-inline' 'unsafe-eval' 
      https://maps.gstatic.com https://maps.googleapis.com; 
     img-src  'self' 
      https://maps.gstatic.com https://maps.googleapis.com; 
     style-src 'self' 'unsafe-inline' *; 
     media-src *;">