手机(iOS / Android)可以在后台观看位置吗?

问题描述 投票:0回答:5

使用手表我的意思是使用 HTML5 的原生地理定位手表支持。这适用于网络应用程序,而不是本机应用程序。谢谢你的帮助:D

javascript html geolocation
5个回答
18
投票

您无法通过后台的 Web 应用程序查看用户的位置。 我在 Chrome (Android M) 上检查过,一旦 Web 应用程序转到后台,GPS 图标就会消失,手表位置过程也会停止。 (一旦 Web 应用程序再次进入前台,观看过程就会恢复)。

设备锁定时也会发生同样的情况。手表进程将停止,直到用户解锁并且 Web 应用程序位于前台。


3
投票

更新2021-04

正在讨论一个新的 API“地理跟踪”,它将允许后台跟踪。不过,这个问题需要投票。如果您有兴趣这样做,请转到此处: https://bugs.chromium.org/p/chromium/issues/detail?id=898536


0
投票

我已经在 Android 上测试了

watchPosition
api,它似乎适用于 Firefox,但不适用于 chrome。

更新: - 我使用的是 Nexus 5X,带有 Android N


0
投票

2023 年更新 我在 Android 和 iOS 上的多个浏览器中尝试过此操作。由于您不知道用户正在使用的浏览器,因此仍然不可能实现这种可靠的方法。

我们应该摆脱本机应用程序(也许对于游戏来说这很好),并转向使用 API 与本机系统对话的 Web 应用程序,就像史蒂夫·乔布斯设计第一部 iPhone 的方式......


-3
投票

是的。如果您的手机浏览器支持的话,您绝对可以在后台观看位置

Geolocation API

您可以使用

watchPosition()
功能。

watchPosition() 代码片段

var watchID = navigator.geolocation.watchPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

如果位置数据发生变化(通过设备移动或更多 准确的地理信息到达),可以设置回调函数 这是用更新的位置信息调用的。这个做完了 使用

watchPosition()
函数,它具有相同的输入 参数为
getCurrentPosition()
。回调函数被调用 多次,允许浏览器将您的位置更新为 您移动,或提供更准确的位置。

getCurrentPosition() 代码片段

navigator.geolocation.getCurrentPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

要获取更多信息,请参阅Mozilla/Geolocation/WatchCurrentPosition

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.