禁止位置权限时运行回调

时间:2018-10-30 16:15:16

标签: javascript php callback geolocation

我目前正在Laravel中从事我的项目。我需要获取有关用户的信息(主要是他的位置),以便我的应用程序能够平稳运行;因此我研究了一段时间并了解了地理定位。我有以下代码可找到用户的位置:

var location;
var latitude;
var longitude;




 function findLocation() {
  var geoSuccess = function(position) {
    location = position;
    latitude = location.coords.latitude;
    longitude = location.coords.longitude;
    console.log("Latitude is " + location.coords.latitude);
    console.log("Longitude is " + location.coords.longitude);
  };
  navigator.geolocation.getCurrentPosition(geoSuccess);
};

问题是,用户需要提供其位置才能注册他的帐户。因此,当用户禁止位置许可时,我想通知用户提供该位置以继续。但是我不知道该怎么做。我想做的是:

if(error){
  console.log("You need to provide your location!");  
  // I will do a bunch of stuffs here
 }

那么,我该怎么做?任何帮助表示赞赏。

  

注意:地理位置代码来自W3Schools.com

2 个答案:

答案 0 :(得分:0)

您可以在getCurrentPosition()方法中添加回调。

来源:https://stackoverflow.com/a/18117882/5865284

navigator.geolocation.getCurrentPosition(showPosition(){
    // Do stuff...
}, showError(){
    // Do stuff...
}, {timeout:8000});

值得注意的是,您可能需要超时,以处理提供“ Not Now”选项的Firefox之类的浏览器。这是因为从设计上讲它不会触发错误处理程序,因此我们需要超时来断言是否已接收到数据。

答案 1 :(得分:0)

实际上,我发现W3Schools有关地理位置的页面中提到了有关该问题的所有内容。而且,我找到了在那里处理错误和拒绝的方法。