UserActivation

Baseline 2023

Newly available

Since November 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

UserActivation 接口提供有关用户当前是否正在与页面交互,或者自页面加载以来是否已完成交互的信息。

此 API 仅在 window 上下文中可用,web worker 中不可用。

实例属性

UserActivation.hasBeenActive 只读

指示当前窗口是否具有粘性(用户)激活。

UserActivation.isActive 只读

指示当前窗口是否具有瞬态(用户)激活。

描述

此类型的对象可通过 navigator.userActivation 属性访问,并可用于查询有关 window 的用户激活状态的信息。

用户激活意味着用户当前正在与页面交互,或者自页面加载以来已完成交互。用户激活可以通过按钮点击、指针触摸或其它的用户界面的交互来触发。

window 用户激活状态有两种:

  • 瞬态激活(用户当前正在与页面交互)和
  • 粘性激活(自页面加载以来,用户至少交互过一次)。

有关更多信息以及需要粘性或瞬态激活的 API 列表,请参见由用户激活控制的特性

示例

检查最近是否执行过用户手势

使用 navigator.userActivation 访问 UserActivation 对象,然后使用 UserActivation.isActive 检查用户当前是否正在与页面进行交互(瞬态激活)。

js
if (navigator.userActivation.isActive) {
  // 例如,继续请求播放媒体
}

检查是否执行过用户手势

使用 UserActivation.hasBeenActive 检查用户是否曾与页面进行过交互(粘性激活)。

js
if (navigator.userActivation.hasBeenActive) {
  // 例如,继续自动播放动画。
}

规范

Specification
HTML Standard
# the-useractivation-interface

浏览器兼容性

BCD tables only load in the browser

参见