progressive-web-apps - 如何知道渐进式 Web 应用程序是在前台还是后台

标签 progressive-web-apps

有没有办法知道渐进式网络应用程序是在后台还是在前台(即它当前是焦点应用程序还是“最小化”)

过去 2 天搜索 Google 和 SO 仅提供有关如何在后台运行 Service Worker 的信息。谢谢!

最佳答案

从客户端,您可以使用 Page Visibility API查询当前可见性并在可见性更改时获取事件。

const state = document.visibilityState;

document.addEventListener('visibilitychange', () => {
  console.log(document.visibilityState);
});

您还可以从 Service Workers 使用 WindowClient 查询客户端的可见性状态。 .
event.waitUntil(
  clients.matchAll({ type: 'window' })
    .then(function(clientList) {
      for (var i = 0; i < clientList.length; i++) {
        const state = clientList[i].visibilityState;
      }
    })
);

关于progressive-web-apps - 如何知道渐进式 Web 应用程序是在前台还是后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50300453/

相关文章:

android - Play商店上的PWA2APK仍然在顶部显示网址栏

oauth - Google 登录 JavaScript 客户端无法在 PWA 应用程序上运行

node.js - 有人在 Elastic Beanstalk 上使用过 Workbox 吗?未检测到

javascript - 渐进式 Web 应用程序 - 离线时在多个缓存页面之间导航

Android Progressive Web App - 添加到主屏幕即使在安装后也会出现

java - 如何通过移动网络浏览器运行Android应用程序(渐进式应用程序)

android - 独立 PWA 中断登录

asp.net-core - Blazor Wasm PWA 未更新

Angular 5 PWA 未在离线模式下加载

ios - iOS 设备未使用的 PWA 图标