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

bis*_*wpo 1 service-worker

我希望我的服务人员获得屏幕的高度和宽度。

我试过 screen.height、self.innerHeight、window.innerHeight,但似乎服务工作者在不同的上下文中运行,这些上下文未定义。

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

Mar*_*rco 5

Service Workers(以及一般的所有工作人员)无法访问 DOM。

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

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

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