在非活动的移动浏览器的情况下,地理定位失败

时间:2017-02-24 17:09:06

标签: javascript geolocation

我正在使用以下代码:

var fail = function(error) {
  alert("Unable to get location");
};

function getGeo() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
        success,
      fail,
      {maximumAge: 50000, timeout: 30000, enableHighAccuracy: true});
  }
};

大多数情况下它可以工作,但通常会产生地理位置错误,无法获得坐标。

无论浏览器窗口处于非活动状态还是浏览器处于后台或移动设备本身处于睡眠模式,我如何才能获得坐标?

1 个答案:

答案 0 :(得分:1)

如果没有“地理位置错误”的具体细节,我的回答可能不完整,但是: -

目前,如果浏览器窗口处于非活动状态或浏览器处于后台或移动设备本身处于睡眠模式,则无法获取坐标,除非您正在开发类似phonegap / cordova的混合应用程序。 (Firefox除了继续为watchPosition()提供服务外,如果该应用程序已预先启动但手机处于睡眠状态。)

我已经向W3C,IETF,Chrome Dev,Mozilla Dev和Edge Dev提出了一些建议,即使用Service Worker Extensibility功能实现仅Javascript解决方案的可行解决方案。

简而言之,UA跟踪地理位置更改,如果在提供过滤器的范围内,将实例化ServiceWorker,这可能会使App前景或仅通知App Server。

与相关机构讨论这个问题,因为这个想法开始受到关注。

HTH