Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当屏幕锁定时,更好地处理web应用Javascript通知_Javascript_Web - Fatal编程技术网

当屏幕锁定时,更好地处理web应用Javascript通知

当屏幕锁定时,更好地处理web应用Javascript通知,javascript,web,Javascript,Web,在我的web应用程序中,我会根据情况在一些页面加载时创建桌面通知,页面每两分钟加载一次。这是一个简单的通知,如下所示: // if warning applies: new Notification("Warning!", {body: "You must take some action"}); 这意味着,如果你打开了应用程序(警告适用),那么每隔几分钟就会出现一个弹出窗口,但每一个都会在大约20秒后消失(无论浏览器的行为是什么) 到目前为止,一切顺利。我的问题是当用户的电脑被锁定时会发生什

在我的web应用程序中,我会根据情况在一些页面加载时创建桌面通知,页面每两分钟加载一次。这是一个简单的通知,如下所示:

// if warning applies:
new Notification("Warning!", {body: "You must take some action"});
这意味着,如果你打开了应用程序(警告适用),那么每隔几分钟就会出现一个弹出窗口,但每一个都会在大约20秒后消失(无论浏览器的行为是什么)

到目前为止,一切顺利。我的问题是当用户的电脑被锁定时会发生什么。如果用户在应该弹出通知的一段时间后回到锁定的PC,那么他们会发现他们都试图连续弹出,这意味着他们必须等待很长时间才能清除或关闭所有通知——真烦人

我真正想要的行为是,当屏幕被锁定时,通知应该经历其正常的生命周期,即弹出并消失。否则,如果屏幕被锁定,我希望他们不要开火

有人知道如何实现这一点吗?

有关检测空闲状态的讨论,请参阅和

简而言之:你们不能在网页上检查屏幕是否被锁定,但你们可以在浏览器扩展中检查


对于通知,您可以在显示新通知之前查看任何以前的通知:

function spawnNotification(theBody, theIcon, theTitle, prevNotification) {
  var options = {
      body: theBody,
      icon: theIcon
  }

  // Close previous notification before showing new one
  prevNotification.close.call(prevNotification)

  var n = new Notification(theTitle,options);
  setTimeout(n.close.bind(n), 4000);

  return n
}

我觉得这更像是一个问题,因为听起来一定有更好的方法来实现你在这些通知中错过的任何目标。是的,如果你遵循第一个链接,关于Idle.js的答案是好的。如果您不想使用该代码,您可以尝试自己编写一些代码,以检查用户是否正在移动鼠标或与页面交互itself@clurect,不太适合通知。在使用NotificationsAPI时,您假设用户在另一个页面上,您需要返回页面以执行某些操作。是关于检查用户是否与您的页面交互。它不知道如何与浏览器或系统交互。