使用JavaScript检测屏幕的开/关

3

我这里有一个非常奇怪的问题,就是如何检测屏幕是否处于打开/激活状态。我正在开发的平台是KaiOS(Firefox OS),正如许多人所知,这个操作系统具有非常受限的硬件/设备组合,因此我的“问题”。

我这里的应用程序需要每秒钟向服务器(特别是Kodi JSON-RPC服务器)POST一次,然后更新HTML仪表和标签以指示经过的时间。我使用setTimeout(updateTimeElapsed, 1000)来执行这个操作。这相当耗费资源(对于功能手机设备),需要一直激活WiFi。

我试图(非常不成功地)实现的目标是检测屏幕是否处于打开状态,然后每秒调用updateTimeElapsed函数(希望确保一旦屏幕关闭,刷新将停止,屏幕打开后,刷新将继续)。有没有办法实现这个目标呢?


https://dev59.com/WmQo5IYBdhLWcg3wiv_A - Pranav C Balan
1个回答

2
你可以使用 visibilitychange 事件,并检查 document.visibilityState
用法如下:
document.addEventListener('visibilitychange', function() {
  if(document.visiblityState == 'hidden') {
    //enter code for pausing refresh
  }
  else if(document.visibilityState == 'visible') {
    //resume refresh
  }
});

1
正确的事件名称是:visibilitychange(小写) - DevTomek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接