【问题标题】:jquery mobile geolocationjquery移动地理位置
【发布时间】:2011-08-20 21:29:41
【问题描述】:

简单的问题.. 如果用户选择不允许地理定位器弹出,我该如何设置重定向?如果我已经涵盖了允许和错误。工作正常。但我不确定如何设置不允许选择。

function showLocation(position) {
      var latitude = position.coords.latitude;
      var longitude = position.coords.longitude;
      //window.location = "/restaurant/latitude/40.714269/longitude/-74.005972/";
      window.location = "/restaurant/";
    }

    function errorHandler(err) {
      if(err.code == 1) {
            alert("Error: Can not access!");
      }else if( err.code == 2) {
            alert("Error: Position is unavailable!");
      }
    }
    function getLocation(){

       if(navigator.geolocation){
          // timeout at 60000 milliseconds (60 seconds)
          var options = {timeout:60000};
          navigator.geolocation.getCurrentPosition(showLocation, errorHandler, options);
       }else{
          alert("Sorry, browser does not support geolocation!");
       }
    }

【问题讨论】:

    标签: jquery mobile geolocation


    【解决方案1】:

    根据W3C Geolocation API spec,应该使用适当的失败原因调用错误处理程序。这包括用户拒绝的权限。

    不幸的是,似乎有一个bug/feature in Firefox,如果您从弹出窗口中选择Not Now,则什么也不会发生-不会调用错误处理程序。但是,如果您选择 Never Share,则会调用您的错误处理程序,并且使用您发布的代码,您将看到警告说 Error: Can not access!

    Chrome 中没有第三个选项(只有 AllowDeny),而且似乎一切正常。

    另请参阅How to detect negative user response for geolocation,其中提出了解决方案(它涉及使用超时来检测没有发生任何事情并将其视为权限被拒绝)

    【讨论】:

      【解决方案2】:

      我看到您已尝试设置 window.location。为什么这对你不起作用?

      window.location = "../nonGeoLocationPage.html"

      【讨论】:

      • 那行得通..我没有意识到 no access/error 1 实际上是不允许选择..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      相关资源
      最近更新 更多