3

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

4

2 回答 2

6

如果用户不允许您的应用程序使用 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;

更具体的:

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

这里的文档。

于 2013-08-20T14:47:00.043 回答
3

没有检查永久授权。
恕我直言,您唯一可以做的就是尝试“猜测”用户是否已通过估计时间授权。
例如:

  • 检索地理位置超过 1.5 秒 -> 可能用户必须单击界面并进行身份验证

  • 少于 500 毫秒 -> 很确定用户已经提供了身份验证

于 2013-08-20T14:54:14.683 回答