首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Maps:如果用户拒绝地理定位,则调用另一个使用公共IP的方法

Google Maps:如果用户拒绝地理定位,则调用另一个使用公共IP的方法
EN

Stack Overflow用户
提问于 2020-05-19 20:54:10
回答 1查看 101关注 0票数 0

我有一个简单的问题,我似乎不能解决。我正在使用谷歌地图javascript来显示特定的位置,当用户接受地理定位服务时,这一切都很好用。为了测试谷歌地图considerIp的工作情况,允许谷歌地图使用公共IP地址也很好。但是,当我尝试执行下面的操作时,showLocationBasedOnIP()方法甚至没有被调用。

代码语言:javascript
复制
function initMap(){
   if (navigator.geolocation) {
     navigator.geolocation.getCurrentPosition(showPosition);
   }
   else{
     showLocationsBasedOnIP();
   }
}

我已经通过删除地理位置检查器独立测试了showLocationsBasedOnIP,但是当我尝试集成它时,就像上面所示的那样,该方法甚至没有被触发。

我想要实现的是,当用户拒绝地理定位时,应该触发我的showLocationsBasedOnIP()方法,在该方法中,我将在浏览器上显示一条消息,指出正在使用公共IP地址,并且除非用户打开地理定位,否则定位服务将不会准确。

我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-21 22:15:37

您需要将showLocationsBasedOnIP函数设置为getCurrentPosition()的错误回调函数。如下所示:

代码语言:javascript
复制
<!DOCTYPE html>
<html>

  <body>
    <button onclick="getLocation()">Try It</button>
    <script>
      function getLocation() {
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(showPosition, showLocationsBasedOnIP);
        } else {
          showLocationsBasedOnIP();
        }
      }

      function showPosition(position) {
        console.log("showing position: ", position.coords.latitude, position.coords.longitude);
      }

      function showLocationsBasedOnIP() {
        console.log("showing location based on IP");
      }

    </script>
  </body>

</html>

现在,您的函数将在两种情况下执行:当用户不允许位置权限时,以及当用户的浏览器不支持地理位置时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61891547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档