有没有办法知道当前域是否启用了地理位置?

时间:2013-08-20 14:36:57

标签: javascript w3c-geolocation

我正在处理的网站使用HTML5地理定位API。它工作正常,但我需要知道该功能是否已被授权 navigator.geolocation仅告知功能是否可用。我想知道的是用户是否已经启用它。基本上,我需要知道浏览器是否会请求使用该功能的权限。有可能吗?

2 个答案:

答案 0 :(得分:6)

如果用户不允许您的应用使用Geolocation API,方法getCurrentPositionwatchPosition将通过错误回调返回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;

更具体:

  • PERMISSION_DENIED(数值1) 位置获取过程失败,因为该文档没有使用Geolocation API的权限。

文档here

答案 1 :(得分:3)

没有检查永久授权。
您可以做的唯一事情是尝试“猜测”用户是否已通过估计时间进行授权。
例如:

  • 检索地理定位超过1.5秒 - >可能是用户得到的 单击界面并授予身份验证

  • 小于500毫秒 - >非常确定用户已经授予了auth