首页 > 解决方案 > 浏览器不活动时的地理位置

问题描述

我需要每 2 分钟捕获一次用户当前位置,所以我有一个触发的 setinterval 事件。在那种情况下,我会捕获用户位置。如果我的浏览器选项卡处于活动状态,这可以正常工作。但是当我更改选项卡/浏览器最小化时,不会触发事件。我有以下被解雇的代码

setInterval(() => this.GetUserLocation(), 120000);

  GetUserLocation() {
        console.log('Event Fired');
        navigator.geolocation.getCurrentPosition(function (position) {
             console.log(position);
        });
  }

我可以看到第一个控制台语句被触发,但在 getCurrentPosition 事件中没有控制台。当应用程序浏览器选项卡未处于活动状态时,如何获取用户位置?

标签: javascript

解决方案


是有关具有背景地理位置的 ServiceWorker 可能性的文档。可悲的是,在 2 年多的时间里,这一基本功能没有任何进展 :-( 恕我直言,W3C 有很多问题要回答。

请参阅我的Brotkrumen Web App 以获取 POC 示例。有一个自述文件。

同样,IMO 您应该使用 watchPosition 但您目前可以使用 Firefox 在后台继续接收位置更新。


推荐阅读