Помогите плз

Проблема: Невозможно отобразить карту Google на странице для приложения для ионной сборки Android с использованием cardova (РАБОТАЕТ НА ХРОМЕ, т.е. БЕЗ СБОРКИ ANDROID)

Страница:

<script id="mapPage.html" type="text/ng-template">
   <ion-view title="Map" ng-init="init()" >
     <ion-nav-buttons side="left">
       <button class="button"> Back </button>
     </ion-nav-buttons> 
     <ion-content>
        <div id="map" data-tap-disabled="true"></div>
     </ion-content>
  </ion-view>

Маршрутизатор:

.config(function($stateProvider, $urlRouterProvider) {
 $stateProvider
    .state('mapPage', 
     url: '/9',
     templateUrl: 'mapPage.html',
     controller: 'mapPageTabCtrl'
  })

Контроллер:

.controller('mapPageTabCtrl', function($scope, $timeout, googleAppEngineService, $ionicPopup,  
     controller_Provider, $ionicLoading, $compile) {

    $scope.init= function() 
    {   
        var propAddress = $scope.propInfoDetailsObj.prop_address;
        var geocoder = new google.maps.Geocoder();
        var result = "";
        geocoder.geocode( { 'address': propAddress}, function(results, status) 
        {
             if (status == google.maps.GeocoderStatus.OK) 
             {
                 var myLatlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng() );

                var mapOptions = {
                  center: myLatlng,
                  zoom: 14,
                  mapTypeId: google.maps.MapTypeId.ROADMAP
                };

                var map = new google.maps.Map(document.getElementById("map"), mapOptions); 

                    var marker = new google.maps.Marker({
                      map: map,
                      position: myLatlng
                    });

                    google.maps.event.addListener(marker, 'click', function() {
                      infowindow.open(map,marker);
                    });

                 $scope.map = map;
             } 
             else 
             {
                 result = "Unable to find address: " + status;
                 console.log("###" + result);
             }

        })//geocoder.geocode( { 'ad
    };  
    //});// function()
})//controller('mapPageTabCtrl',

ДО сборки Android ($ ionic build android), протестировал ее в браузере Chrome с помощью tomcat и отлично работает. Я мог видеть карту Google на странице.

Далее,
Используя $ ionic build android, создал файл apk и протестировал как на эмуляторе AVD, так и на реальном телефоне Android, и заметил, что страница не загружает карту Google, выглядит так, как будто она игнорирует $ scope.init = function () {}.

Буду признателен за вашу помощь ...

0
Naresh 27 Дек 2014 в 06:23
1
Сначала вы должны попытаться загрузить базовую карту и проверить, что $scope.init работает правильно.
 – 
shellakkshellu
27 Дек 2014 в 17:04
Во время отладки в chrome он выполнил функцию $scope.init, и поэтому я смог увидеть googleMap на странице. Затем тот же код создается для andorid с использованием $ionic build android, и когда apk тестируется на реальном телефоне Android, он не показывает googleMap на странице.
 – 
Naresh
28 Дек 2014 в 21:18

2 ответа

Лучший ответ

Проблема решена - ошибка кода, препятствовавшая загрузке карт.

0
Naresh 7 Янв 2015 в 23:25
4
Я получаю аналогичную ошибку сейчас, работает в браузере, но не когда я ставлю ее на телефон. Как вы это решили?
 – 
user1180888
26 Фев 2015 в 03:41

Если вы можете просматривать карту в браузере, но не при развертывании для Android, выполните следующую команду: ionic plugin add cordova-plugin-whitelist . По умолчанию HTTP-запросы отключены, поэтому все внешние скрипты загружаться не будут.

0
code-assassin 20 Июн 2015 в 16:05