1

我正在创建一个浏览器扩展程序,将一些 javascript 注入某些网站。

该脚本的功能需要知道用户是否为指定站点启用了地理定位。到目前为止,我只看到示例 javascript 请求站点上的用户许可,然后决定做什么。

为了尽可能不打扰用户,我想了解用户是否已经允许该站点使用其地理位置,如果有,请使用该信息,否则执行不需要它的代码。html5 geolocation api中是否有任何功能可以让我这样做?

4

3 回答 3

1

首先,Geolocation不是HTML5 的一部分,它是 W3C 规范。

其次,据我所知,没有办法做到这一点。快速浏览一下W3C 地理定位规范并没有发现任何问题。

我建议只是尝试通过 Geolocation 获取他们的位置,如果它有效,那么您可以假设已授予权限,如果没有运行不需要 API 的代码。

我知道您不想明确询问用户的许可,但它只会是一次,所以您也可以。

于 2012-04-24T07:16:59.237 回答
0

据我所知,没有这样的功能,我从来没有听说过,所以你可能要等待很长时间......

于 2012-04-24T06:52:51.807 回答
0

看起来现在有一个“权限 API”,可让您查看已授予该站点的权限。

// Check for Geolocation API permissions              
navigator.permissions.query({name:'geolocation'})
    .then(function(permissionStatus) {  
        console.log('geolocation permission state is ', permissionStatus.state);

        permissionStatus.onchange = function() {  
            console.log('geolocation permission state has changed to ', this.state);
    };
});

https://developers.google.com/web/updates/2015/04/permissions-api-for-the-web

但是,目前它在 Chrome 和 Firefox 之外还没有得到广泛支持:http: //caniuse.com/#feat=permissions-api

于 2017-05-30T20:15:38.973 回答