PhoneGap, не может получить текущее местоположение в Android - PullRequest
0 голосов
/ 16 октября 2018

Я не могу получить местоположение, я добавил разрешение Android для доступа к местоположению с помощью Cordova-plugin-geolocation, но оно все равно не работает.

это мой код:

function addYourLocationButton () {
    var controlDiv = document.createElement('div');

    var firstChild = document.createElement('button');
    firstChild.style.backgroundColor = '#fff';
    firstChild.style.border = 'none';
    firstChild.style.outline = 'none';
    firstChild.style.width = '28px';
    firstChild.style.height = '28px';
    firstChild.style.borderRadius = '2px';
    firstChild.style.boxShadow = '0 1px 4px rgba(0,0,0,0.3)';
    firstChild.style.cursor = 'pointer';
    firstChild.style.marginRight = '10px';
    firstChild.style.padding = '0';
    firstChild.title = 'Your Location';
    controlDiv.appendChild(firstChild);

    var secondChild = document.createElement('div');
    secondChild.style.margin = '5px';
    secondChild.style.width = '18px';
    secondChild.style.height = '18px';
    secondChild.style.backgroundImage = 'url(img/mylocation-sprite-2x.png)';
    secondChild.style.backgroundSize = '180px 18px';
    secondChild.style.backgroundPosition = '0 0';
    secondChild.style.backgroundRepeat = 'no-repeat';
    firstChild.appendChild(secondChild);

    google.maps.event.addListener(map, 'center_changed', function () {
        secondChild.style['background-position'] = '0 0';
    });

    firstChild.addEventListener('click', function () {
        var imgX = 0,
            animationInterval = setInterval(function () {
                imgX = -imgX - 18 ;
                secondChild.style['background-position'] = imgX+'px 0';
            }, 500);
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(
                browserGeolocationSuccess,
                browserGeolocationFail ,{enableHighAccuracy: true});
        }else{
            clearInterval(animationInterval);
            secondChild.style['background-position'] = '0 0';
        }
        function browserGeolocationSuccess(position){
            var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            lat = position.coords.latitude;
            lon = position.coords.longitude;

            map.setCenter(latlng);
            clearInterval(animationInterval);
            secondChild.style['background-position'] = '-144px 0';
            callback_currentlocation();
        }
        function browserGeolocationFail(error){
            var error_message;
            switch(error.code) {
                case error.PERMISSION_DENIED:
                    error_message = "Sistem kami tidak di izinkan untuk mengakses lokasi anda";
                    break;
                case error.POSITION_UNAVAILABLE:
                    error_message = "Maaf, Lokasi anda tidak ditemukan";
                    break;
                case error.TIMEOUT:
                    error_message = "Maaf, Request Time Out";
                    break;
                case error.UNKNOWN_ERROR:
                    error_message = "Maaf, Terjadi kesalahan"
                    break;
            }
            clearInterval(animationInterval);
            secondChild.style['background-position'] = '0 0';
            alert(error_message);
        }
    });

    controlDiv.index = 1;
    map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(controlDiv);
}

перед добавлением разрешения для местоположения код останавливается в случае отказа в разрешении, после добавления разрешения для местоположения нет ответа и отображается только анимация значка местоположения.

Кто-нибудь может помочь?

...