jquery移动地理定位

时间:2011-08-20 21:29:42

标签: jquery mobile geolocation

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

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!");
       }
    }

2 个答案:

答案 0 :(得分: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建议解决方案(它涉及使用超时检测没有发生任何事情并将其视为与拒绝权限相同)

答案 1 :(得分:0)

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

window.location =“../ nonGeoLocationPage.html”