如何知道访客拒绝与网站分享他们的位置?

时间:2016-10-25 17:02:36

标签: javascript jquery html5 geolocation navigator

我正在尝试使用HTML5 gelolocation来获取当前访问者的位置。 由于隐私,浏览器将提示用户允许/禁止与网站共享其位置。

如果用户不允许共享他们的位置,我想向控制台显示一条消息。

这就是我所做的

$(function() {

    // Try HTML5 geolocation.
    if (navigator.geolocation) 
    {
        navigator.geolocation.getCurrentPosition(function(position)
        {
            findClosestStore(position.coords.latitude, position.coords.longitude);
        }, displayMapWithAddressBar);

    } 
    else 
    {
        // Browser doesn't support Geolocation
        console.log('browser does not support geolocation!')
        displayMapWithAddressBar();
    }

});


function displayMapWithAddressBar()
{
    console.log('Show the map since the location was not detected!');
}

但是当用户拒绝分享他们的位置时,我在控制台中看不到任何内容。我希望看到一条消息说Show the map since the location was not detected!

我怎么知道用户拒绝分享他们的位置?

更新

我的代码在谷歌浏览器中正常工作,但在Firefox中没有。如何在所有浏览器中使用它?

1 个答案:

答案 0 :(得分:0)

无法区分他们是否拒绝许可,或者他们的浏览器是否完全兼容(至少在Firefox中)。这样做的方法是使用地址栏显示地图,或者显示默认行为,然后在接受时更新UI。这段代码简单得多......

displayMapWithAddressBar();
navigator.geolocation.getCurrentPosition(function(position){
    findClosestStore(position.coords.latitude, position.coords.longitude);
});