来自 3rd 方脚本的 html5 地理定位权限
Posted
技术标签:
【中文标题】来自 3rd 方脚本的 html5 地理定位权限【英文标题】:html5 geolocation permissions from 3rd party script 【发布时间】:2012-04-24 03:11:36 【问题描述】:我正在创建一个浏览器扩展程序,将一些 javascript 注入某些网站。
脚本的功能需要知道用户是否为指定站点启用了地理定位。到目前为止,我只看到示例 javascript 请求站点上的用户许可,然后决定做什么。
为了尽可能不打扰用户,我想了解用户是否已经允许网站使用其地理位置,如果允许,请使用该信息,否则执行不需要它的代码. html5 geolocation api中是否有任何功能可以让我这样做?
【问题讨论】:
【参考方案1】:首先,Geolocation 不是 HTML5 的一部分,它是 W3C 规范。
其次,据我所知,没有办法做到这一点。快速查看W3C Geolocation Specification 并没有发现任何信息。
我建议只是尝试通过 Geolocation 获取他们的位置,如果它有效,那么您可以假设已授予权限,如果没有运行不需要 API 的代码。
我知道你不想明确征求用户的许可,但它只会是一次,所以你也可以。
【讨论】:
【参考方案2】:据我所知,目前还没有这个功能,也没有听说过,所以你可能要等很久……
【讨论】:
【参考方案3】:现在似乎有一个“权限 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
【讨论】:
以上是关于来自 3rd 方脚本的 html5 地理定位权限的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 地理定位精度 Android 与 iOS 非常不同