使用手表我的意思是使用 HTML5 的原生地理定位手表支持。这适用于网络应用程序,而不是本机应用程序。谢谢你的帮助:D
您无法通过后台的 Web 应用程序查看用户的位置。 我在 Chrome (Android M) 上检查过,一旦 Web 应用程序转到后台,GPS 图标就会消失,手表位置过程也会停止。 (一旦 Web 应用程序再次进入前台,观看过程就会恢复)。
设备锁定时也会发生同样的情况。手表进程将停止,直到用户解锁并且 Web 应用程序位于前台。
更新2021-04
正在讨论一个新的 API“地理跟踪”,它将允许后台跟踪。不过,这个问题需要投票。如果您有兴趣这样做,请转到此处: https://bugs.chromium.org/p/chromium/issues/detail?id=898536
我已经在 Android 上测试了
watchPosition
api,它似乎适用于 Firefox,但不适用于 chrome。
更新: - 我使用的是 Nexus 5X,带有 Android N
2023 年更新 我在 Android 和 iOS 上的多个浏览器中尝试过此操作。由于您不知道用户正在使用的浏览器,因此仍然不可能实现这种可靠的方法。
我们应该摆脱本机应用程序(也许对于游戏来说这很好),并转向使用 API 与本机系统对话的 Web 应用程序,就像史蒂夫·乔布斯设计第一部 iPhone 的方式......
是的。如果您的手机浏览器支持的话,您绝对可以在后台观看位置
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
希望有帮助!