地理定位脚本的执行将停止,直到用户接受或拒绝位置访问

时间:2017-10-11 14:39:34

标签: javascript jquery geolocation

我正在使用HTML5地理位置来获取用户位置。如果用户接受共享该位置,则呼叫以高准确度完成,如果用户选择不共享该位置,则首选回退机制(错误情况或拒绝)。

问题是如果用户没有选择任何选项。那么没有方法被执行。有没有办法设置如果用户不允许或拒绝位置访问,应该调用回退方法?我试过超时20000(20秒),但是没用。

有人可以帮助在这种情况下如何处理吗?

请参阅以下代码:

//function to get device location
function getLocation(successCallback, showError, locFallback)
{
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(successCallback, showError, { enableHighAccuracy: true, timeout: 20000 });
    }
    else
    {
        locFallback();
    }
}

$(document).ready(function () {
    var coord;

    function setLocation(position) {
        coord = position.coords;
        getLocationsData();
    }

    function getLocationsData() {
            //some code which uses ajax to load data based on co ordinates
    }


    function deviceLocFallback() {
        //some code which uses geoIP database or 3rd party to get less accurate co ordinates
        coord = fromFallback;
        getLocationsData();

    }

    $.ajax({
        //some code which runs initially, ajax call to server, below code runs in callback of ajax
        getLocation(setLocation, deviceLocFallback, deviceLocFallback);

    });
});

0 个答案:

没有答案