【问题标题】:Is there a way to know if geolocation is enabled for the current domain?有没有办法知道当前域是否启用了地理定位?
【发布时间】:2013-08-22 16:03:53
【问题描述】:

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

【问题讨论】:

    标签: javascript w3c-geolocation


    【解决方案1】:

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

    • 检索地理位置超过 1.5 秒 -> 用户可能需要 点击界面并给予授权

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-17
        • 1970-01-01
        • 1970-01-01
        • 2019-03-28
        • 2014-09-11
        • 2014-12-22
        • 1970-01-01
        相关资源
        最近更新 更多