Spec-Zone.ru › Web APIs

API для определения простоя

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Защищённый контекст: Эта функция доступна только в защищённых контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Экспериментальная функция: Это экспериментальная технология
Перед использованием в производстве тщательно изучите таблицу совместимости с браузерами.

Примечание: Эта функция доступна в посвящённых веб-воркерах.

API для определения простоя предоставляет возможность определять состояние активности пользователя, активный, неактивный и заблокированный, а также получать уведомления об изменениях состояния простоя без опроса со стороны скрипта.

Концепции и использование

Нативные приложения и расширения браузера используют определение простоя, основываясь на взаимодействии пользователя с устройством. Например, приложения чата могут показывать другим пользователям, доступен ли кто-то. Другие приложения могут выбирать показывать уведомления только при взаимодействии пользователя с приложением. Веб-приложение может использовать этот API для аналогичных случаев. Кроме того, прогрессивное веб-приложение может использовать определение простоя для запуска обновления сервисного работника, когда приложение не используется.

Интерфейсы

IdleDetector Экспериментально

Предоставляет методы и события для определения активности пользователя на устройстве или экране.

Примеры

Следующий пример демонстрирует создание детектора и протоколирование изменений состояния простоя пользователя. Для получения необходимой активации пользователя используется кнопка.

const controller = new AbortController();
const signal = controller.signal;

startButton.addEventListener("click", async () => {
  if ((await IdleDetector.requestPermission()) !== "granted") {
    console.error("Idle detection permission denied.");
    return;
  }

  try {
    const idleDetector = new IdleDetector();
    idleDetector.addEventListener("change", () => {
      const userState = idleDetector.userState;
      const screenState = idleDetector.screenState;
      console.log(`Idle change: ${userState}, ${screenState}.`);
    });

    await idleDetector.start({
      threshold: 60_000,
      signal,
    });
    console.log("IdleDetector is active.");
  } catch (err) {
    // Deal with initialization errors like permission denied,
    // running outside of top-level frame, etc.
    console.error(err.name, err.message);
  }
});

stopButton.addEventListener("click", () => {
  controller.abort();
  console.log("IdleDetector is stopped.");
});

Спецификации

Спецификация
API для определения простоя
# api-idledetector

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
IdleDetector 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
Idle_Detection_API 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
change_event 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
requestPermission_static 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
screenState 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
start 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94
userState 94 11494–96 Нет 80 Нет 94 Нет 66 Нет 17.0 94

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Idle_Detection_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API