Javascript 如何在移动设备上保持网页的活力?

Javascript 如何在移动设备上保持网页的活力?,javascript,ios,html,Javascript,Ios,Html,我有一个非常基本的HTML5页面设置供离线使用,它告诉我何时离线,何时在线 我在其中添加了位置跟踪,以记录设备运行时的位置: function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success, error); } else { alert('geolocation not supported')

我有一个非常基本的HTML5页面设置供离线使用,它告诉我何时离线,何时在线

我在其中添加了位置跟踪,以记录设备运行时的位置:

function getLocation() {            
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(success, error);
    } else {
      alert('geolocation not supported');
    }
    setTimeout(function() { getLocation(); },5000);  // calls itself every 5 seconds
}  
这似乎很有效,但有一个小问题

在桌面浏览器上,您可以最小化页面,并不断记录位置

在移动设备(即iOS)上,当最小化浏览器时,浏览器将暂停,即不再记录位置

有没有办法强制网页在移动设备上“保持活跃”?我知道应用程序也有一个类似的功能,你可以回到主屏幕,应用程序可以继续运行


如您所见,这不是“会话丢失”问题,这很简单,页面上的所有脚本都会在网页未被查看时停止。

您无法强制页面保持活动状态-这是您无法控制的,因为操作系统会暂停或关闭浏览器以节省资源。

您无法强制页面保持活动状态-这是操作系统无法控制的挂起或关闭浏览器以节省资源。

您可以尝试对音频文件进行for循环并播放,这将帮助浏览器永远在后台运行。

您可以尝试对音频文件进行for循环并播放,这将帮助浏览器永远在后台运行。

您尝试过吗?尽管我怀疑它是否能在iOS上运行,因为系统对后台运行的代码要求非常严格……我认为这比你的更依赖于浏览器控件。如果浏览器设计为在退出或其他情况下休眠,那么您将无法绕过它。作为一个应用程序,你应该能够从OS@jjv360caniuse.com/#search=webworkers在ios上工作,但在android上工作完全没有。谢谢JV360的提示,但看起来你无法在webworker中获得用户的位置:你试过了吗?尽管我怀疑它是否能在iOS上运行,因为系统对后台运行的代码要求非常严格……我认为这比你的更依赖于浏览器控件。如果浏览器设计为在退出或其他情况下休眠,那么您将无法绕过它。作为一个应用程序,你应该能够从OS@jjv360caniuse.com/#search=webworkers在ios上工作,但在android上工作完全不需要感谢JV360的提示,但看起来你无法在webworker中获得用户的位置: