无需登录 数据私有 本地保存

Idle Detection API 沙盒 - 检测用户是否离开

2
0
0
0

Idle Detection API 沙盒

检测用户是否离开电脑、锁屏或处于空闲状态

等待授权
用户状态

等待检测

屏幕状态

等待检测

空闲时长

00:00

mm:ss

设定触发空闲状态的无操作时长

15秒 300秒
状态变更日志
0 条记录

暂无状态变更记录,启动检测后将在此显示...

常见问题 (FAQ)
Idle Detection API 是一个浏览器原生 API,允许 Web 应用检测用户是否处于空闲状态。它能感知用户是否离开键盘、鼠标无操作,甚至是否锁定了屏幕。这对于需要根据用户活跃状态调整行为的应用(如即时通讯、在线协作工具、游戏等)非常有用。该 API 可以区分两种状态:用户状态(active / idle)和屏幕状态(unlocked / locked)。
截至目前,Idle Detection API 主要在 Chromium 内核浏览器中受支持,包括 Google Chrome 94+ 和 Microsoft Edge 94+。Firefox 和 Safari 尚未原生支持该 API。使用前建议通过 'IdleDetector' in window 进行特性检测。此外,该 API 需要安全上下文(HTTPS)才能正常工作。
调用 IdleDetector.requestPermission() 会弹出浏览器权限提示,用户可选择"允许"、"禁止"或"忽略"。权限状态有三种:'granted'(已授权)、'denied'(已拒绝)、'prompt'(待用户决定)。只有获得 'granted' 状态后,才能创建 IdleDetector 实例并启动监听。权限可能被用户随时在浏览器设置中撤销。
阈值(threshold)是指用户无任何操作多少毫秒后,系统将其判定为"空闲"状态。例如设置为 60000 毫秒(60秒),则用户停止键盘/鼠标操作 60 秒后,userState 将变为 'idle'。阈值最小为 60000 毫秒(1分钟),这是浏览器的强制限制,以保护用户隐私。
Idle Detection API 具有潜在的隐私敏感性——它可以揭示用户是否在电脑前。因此浏览器实施了多项保护措施:①必须用户明确授权②阈值最低60秒,防止高频监控;③仅HTTPS环境可用④用户可随时撤销权限。开发者应仅将空闲状态用于提升用户体验(如自动保存、状态同步),而非追踪或监控目的。
传统方式通过监听 mousemovekeydownscroll 等事件并用定时器判断空闲,但这种方式无法检测屏幕锁定,也无法感知用户在浏览器外的操作。Idle Detection API 则能直接获取操作系统级别的空闲状态,包括屏幕锁定、系统休眠等传统方法无法感知的场景,且性能更优、更省电
生产环境使用建议:始终进行特性检测(feature detection);使用 AbortController 管理检测生命周期,在不需要时停止;提供降级方案(如回退到传统事件监听);尊重用户隐私,不在未告知的情况下使用空闲数据;在合适的时机请求权限(如用户即将进入需要检测的功能时),而非页面加载时立即请求。