Javascript 如果移动浏览器处于非活动状态,则地理定位失败

Javascript 如果移动浏览器处于非活动状态,则地理定位失败,javascript,geolocation,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, ena

我正在使用以下代码:

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});
  }
};
大多数情况下,它可以工作,但通常会产生地理定位错误,无法获得坐标


无论浏览器窗口处于非活动状态、浏览器处于后台或手机本身处于睡眠模式,我如何才能获取坐标?

如果没有地理位置错误的详细信息,我的答案无法完成,但:-

目前,如果浏览器窗口处于非活动状态,或者浏览器处于后台,或者手机本身处于睡眠模式,则无法获取坐标,除非您正在开发一个类似phonegap/cordova的混合应用程序。Firefox的例外情况是,如果应用程序是预装的,但手机处于休眠状态,则会继续为watchPosition提供服务

我已经向W3C、IETF、Chrome开发人员、Mozilla开发人员和Edge开发人员提出了一些建议,建议他们使用Javascript专用解决方案的功能来提供可行的解决方案

简言之,UA跟踪地理位置的变化,如果在开发人员提供的过滤器范围内,则会实例化一个ServiceWorker,该ServiceWorker可能会使应用前景化,或者仅仅通知应用服务器

请与有关机构探讨这一问题,因为这一想法正开始得到重视

HTH

你看了这个吗?