美文网首页
检测用户是否处于空闲状态或处于非活动状态

检测用户是否处于空闲状态或处于非活动状态

作者: lio_zero | 来源:发表于2021-05-09 16:09 被阅读0次

    某些应用程序需要你持续关注。这类应用程序通常包括游戏、媒体播放器、任何 CPU/电池密集型的应用程序等等。对于这些类型的应用程序,当用户不再主动与您的应用程序交互时,做一些事情(以及用户友好的)可能很重要。

    创建 init 函数。其中监听各种鼠标、键盘和触摸事件,来确保应用程序的活动状态。如果监听到这些事件中的任何一个,使用resetTimer 函数充当事件处理程序并被调用。

    • 使用 setTimeout 监听用户,一旦停止与应用程序交互,它就会开始计时。
    • 活跃时清除 timeoutID 定时器,并调用 goActive 函数。
    • 非活跃时重新计时,调用 goInactive 函数。
    let timeoutID
    
    function init() {
      this.addEventListener('mousemove', resetTimer)
      this.addEventListener('mousedown', resetTimer)
      this.addEventListener('keypress', resetTimer)
      this.addEventListener('DOMMouseScroll', resetTimer)
      this.addEventListener('mousewheel', resetTimer)
      this.addEventListener('touchmove', resetTimer)
      this.addEventListener('MSPointerMove', resetTimer)
      startTimer()
    }
    
    init()
    
    function startTimer() {
      // 请等待2秒钟,然后再调用 goInactive
      timeoutID = setTimeout(goInactive, 2000)
    }
    
    function resetTimer(e) {
      clearTimeout(timeoutID)
      goActive()
    }
    
    function goInactive() {
      // do something
    }
    
    function goActive() {
      // do something
      startTimer()
    }
    

    查看效果

    相关文章

      网友评论

          本文标题:检测用户是否处于空闲状态或处于非活动状态

          本文链接:https://www.haomeiwen.com/subject/vftvdltx.html