在 Service Worker 中访问屏幕高度和宽度

Access screen height and width in a service worker

我想让我的服务人员获取屏幕的高度和宽度。

我已经尝试了 screen.height、self.innerHeight、window.innerHeight,但似乎服务人员 运行 在不同的上下文中未定义。

有没有办法在 service worker 的上下文中访问高度和宽度等设备信息?

Service Worker(以及一般所有 worker)无法访问 DOM。

我可以看到两种方法来实现你想要的:

  1. 将这些值存储在您页面的 IndexedDB(或缓存)中,并在 worker 中访问它们;
  2. 使用 postMessage.
  3. 将这些值从页面发送到服务工作者

显然,您可以始终使用第一种解决方案,当您的 service worker 运行 并且没有任何页面打开时,您不能使用第二种解决方案。