【发布时间】:2013-08-22 16:03:53
【问题描述】:
我正在开发的网站使用 HTML5 地理定位 API。它工作正常,但我需要知道该功能是否已被授权。navigator.geolocation 仅告知该功能是否可用。我想知道的是用户是否已经启用它。基本上,我需要知道浏览器是否会请求使用该功能的权限。有可能吗?
【问题讨论】:
标签: javascript w3c-geolocation
我正在开发的网站使用 HTML5 地理定位 API。它工作正常,但我需要知道该功能是否已被授权。navigator.geolocation 仅告知该功能是否可用。我想知道的是用户是否已经启用它。基本上,我需要知道浏览器是否会请求使用该功能的权限。有可能吗?
【问题讨论】:
标签: javascript w3c-geolocation
没有检查永久授权。
恕我直言,您唯一可以做的就是尝试“猜测”用户是否已通过估计时间授权。
例如:
检索地理位置超过 1.5 秒 -> 用户可能需要 点击界面并给予授权
不到 500 毫秒 -> 很确定用户已经提供了身份验证
【讨论】:
如果用户不允许您的应用使用 Geolocation API,getCurrentPosition 和 watchPosition 方法将通过错误回调返回一个 PositionError 对象:
void getCurrentPosition(successCallback,
errorCallback,
options);
long watchPosition(successCallback,
errorCallback,
options);
PositionError 看起来像:
PositionError {
code;
message;
};
代码的可能值是:
PositionError.PERMISSION_DENIED = 1;
PositionError.POSITION_UNAVAILABLE = 2;
PositionError.TIMEOUT = 3;
更具体的:
文档here。
【讨论】: