我正在创建一个浏览器扩展,将某些javascript注入某些网站。
脚本的功能需要知道用户是否为指定站点启用了地理位置。到目前为止,我只看到了一个示例javascript,它要求网站上的用户许可,然后决定做什么。
尽管对用户尽可能不引人注意,但我想知道用户是否已经允许该站点使用其地理位置,如果有,请使用该信息,否则执行不需要它的代码。 html5 geolocation api中是否有允许我这样做的功能?
答案 0 :(得分:1)
首先,Geolocation是 NOT HTML5的一部分,它是W3C规范。
其次,据我所知,没有办法做到这一点。快速查看W3C Geolocation Specification并未发现任何内容。
我建议只是尝试通过Geolocation获取他们的位置,如果它有效,那么你可以假设已经授予了权限,如果没有运行不需要API的代码。
我知道您不想明确询问用户的许可,但它只会是一次,所以您也可以。
答案 1 :(得分:0)
据我所知,没有这样的功能,我从未听说过,所以你可能需要等待很长时间......
答案 2 :(得分: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);
};
});
Enumerating Alternate Data Streams
但是,目前在Chrome和Firefox之外并没有得到广泛支持:https://developers.google.com/web/updates/2015/04/permissions-api-for-the-web