html5 – 有没有一种检测用户是否已经有权限使用navigator.geolocation的方法?

除了第一次设置cookie之外,还有一种方法可以检测用户是否已经授权navigator.geolocation返回浏览器的lat / long?

如果有,所有浏览器是不同的,在所有浏览器中是不同的?

这个问题已经是partially answered elsewhere

根据GeoLocation API – Chrome / Safari – Permission management and Visual Differences,Chrome要求可撤销一次性许可.我还没有阅读这篇文章,但似乎存储权限不是纯Chrome的事情.

最佳答案
如何使用所有html5浏览器(支持geoLocation)支持的localStorage?

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
} 
//Get latitude and longitude;
function successFunction(position) {
    var lat = position.coords.latitude;
    var long = position.coords.longitude;

    localStorage['authorizedGeoLocation'] = 1;
}

function errorFunction(){
    localStorage['authorizedGeoLocation'] = 0;
}

function checkauthorizedGeoLocation(){ // you can use this function to know if geoLocation was previously allowed
    if(typeof localStorage['authorizedGeoLocation'] == "undefined" || localStorage['authorizedGeoLocation'] == "0" ) 
        return false;
    else 
        return true;
}

然后您使用以下功能检查:

alert(checkauthorizedGeoLocation());

This is the jsfiddle if you need to check

转载注明原文:html5 – 有没有一种检测用户是否已经有权限使用navigator.geolocation的方法? - 代码日志