Задать вопрос
@maryoleksiuk

Как приложение cordova googlemaps протестировать на андроид девайсе?

Написала апп, где используется геолокация и поточное местонахождение пользователя, на cordova. В браузере тестировала - все работает. Пустой проект cordova на андроид девайсе тоже работает. Когда вставила скрипт и body в index.html в приложении просто серый экран при тестировании.Может быть у Вас есть идеи почему так?
Вот код с body
<body onload="geoloc()">
    <div id="divmap"></div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
        </script>
    </body>


Спасибо большое!

Код

<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <meta name="msapplication-tap-highlight" content="no" />
        <style>
            html, body, #divmap{
            height: 100%;
            margin: 0px;
            padding: 0px
        }
        </style>
        <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=weather"></script>

        <script>
            var watchId = null;
            function geoloc() {
                if (navigator.geolocation) {
                    // Get the user's current position
                    var optn = {
                        enableHighAccuracy : true,
                        timeout : Infinity,
                        maximumAge : 0
                    };
                watchId = navigator.geolocation.watchPosition(showPosition, showError, optn);
                } else {
                    alert('Geolocation is not supported in your browser');
                }
                }
 
            function showPosition(position) {
                var googlePos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
                var mapOptions = {
                    zoom : 12,
                    center : googlePos,
                    mapTypeId : google.maps.MapTypeId.ROADMAP
                };
                
                
                    
                var mapObj = document.getElementById('divmap');
                var googleMap = new google.maps.Map(mapObj, mapOptions);    
    
                
                var markerOpt = {
                    map : googleMap,
                    position : googlePos,
                    title : 'Hi , I am here',
                    animation : google.maps.Animation.DROP
                };
                
                var googleMarker = new google.maps.Marker(markerOpt);
                
                var geocoder = new google.maps.Geocoder();
                geocoder.geocode({
                    'latLng' : googlePos
                }, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                            if (results[1]) {
                                var popOpts = {
                                    content : results[1].formatted_address,
                                    position : googlePos
                                };
                                var popup = new google.maps.InfoWindow(popOpts);
                                
                                                                       
                                /*google.maps.event.addListener(googleMap, 'center_changed', function(){
                                    window.setTimeout(function(){
                                        googleMap.panTo(googleMarker.getPosition());
                                    }, 2000);
                                
                                });*/
                                                                
                                google.maps.event.addListener(googleMarker, 'setTimeout', setTimeout (function() {
                                    popup.open(googleMap, googleMarker)}, 200));
                                
                            } else {
                                alert('No results found');
                            }
                    } else {
                        alert('Geocoder failed due to: ' + status);
                    }
                });
                
               var weatherLayer = new google.maps.weather.WeatherLayer({
                  temperatureUnits: google.maps.weather.TemperatureUnit.Celsius
                });
                weatherLayer.setMap(googleMap);

                var cloudLayer = new google.maps.weather.CloudLayer();
                cloudLayer.setMap(googleMap);
                

            }
            
            function showError(error) {
                var err = document.getElementById('divmap');
                switch(error.code) {
                    case error.PERMISSION_DENIED:
                        err.innerHTML = "User denied the request for Geolocation."
                        break;
                    case error.POSITION_UNAVAILABLE:
                        err.innerHTML = "Location information is unavailable."
                        break;
                    case error.TIMEOUT:
                        err.innerHTML = "The request to get user location timed out."
                        break;
                    case error.UNKNOWN_ERROR:
                        err.innerHTML = "An unknown error occurred."
                        break;
                }
        }
            
       </script>
  </head>
  <body onload="geoloc()">
    <div id="divmap"></div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
        </script>
    </body>
</html>
  • Вопрос задан
  • 2706 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
deadbyelpy
@deadbyelpy
веб-шмеб
включаю телепата.
вероятно у вас не стоит обработка события deviceready, которое вызывается, когда все что необходимо для работы приложения загружено

document.addEventListener('deviceready', app.initialize);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы