javascript - 浏览器不活动时的地理位置
问题描述
我需要每 2 分钟捕获一次用户当前位置,所以我有一个触发的 setinterval 事件。在那种情况下,我会捕获用户位置。如果我的浏览器选项卡处于活动状态,这可以正常工作。但是当我更改选项卡/浏览器最小化时,不会触发事件。我有以下被解雇的代码
setInterval(() => this.GetUserLocation(), 120000);
GetUserLocation() {
console.log('Event Fired');
navigator.geolocation.getCurrentPosition(function (position) {
console.log(position);
});
}
我可以看到第一个控制台语句被触发,但在 getCurrentPosition 事件中没有控制台。当应用程序浏览器选项卡未处于活动状态时,如何获取用户位置?
解决方案
这是有关具有背景地理位置的 ServiceWorker 可能性的文档。可悲的是,在 2 年多的时间里,这一基本功能没有任何进展 :-( 恕我直言,W3C 有很多问题要回答。
请参阅我的Brotkrumen Web App 以获取 POC 示例。有一个自述文件。
同样,IMO 您应该使用 watchPosition 但您目前可以使用 Firefox 在后台继续接收位置更新。