当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?
Posted
技术标签:
【中文标题】当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?【英文标题】:How to get location using HTML Geolocation API in mobile browser using web application when mobile is in sleep mode or when browser is in background? 【发布时间】:2020-07-06 20:14:15 【问题描述】:我正在使用 html Geolocation API 在一段时间后获取用户在 Web 应用程序中的位置。当 Web 应用程序处于前台时,它在移动浏览器上运行良好,即使在 iPhone 上的 safari 和 android 上的 google chrome 中也是如此。但是,当浏览器中的 Web 应用程序进入后台或移动设备进入睡眠模式时,我无法使用 HTML Geolocation API 获取位置。下面是示例代码
<script>
setInterval(function()
getLocation();
, 10000);
var x = document.getElementById("demo");
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
x.innerHTML = "Geolocation is not supported by this browser.";
function showPosition(position)
// save the position
</script>
有什么帮助吗?
【问题讨论】:
我认为这可能会有所帮助:***.com/questions/5927284/… 【参考方案1】:首先,您可能应该每隔一段时间使用 watchPosition() 而不是 getCurrent。
其次,地理定位在后台不起作用:-(
这个要求是众所周知的,已经有 5 年多了。见冗长讨论here
还为years 提供了 POC 设计和解决方案
迄今为止没有人可以解决问题!然而 W3C 拒绝规范它,浏览器拒绝实现它 :-( 原因只有他们自己知道。
【讨论】:
以上是关于当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?的主要内容,如果未能解决你的问题,请参考以下文章
Android 在设备处于睡眠状态时获取 GPS 坐标更新(屏幕已关闭)