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
# the-useractivation-interface

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
UserActivation
hasBeenActive
isActive

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见