window.caches 在 Android Chrome 中未定义,但在桌面 Chrome 中可用

window.caches is undefined in Android Chrome, but is available at Desktop Chrome

我对缓存 API 在移动设备上的可用性有点困惑。

https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage

文档指出此 API 在服务工作者范围和 window 范围内均可用。

我可以在桌面 Chrome 上毫无问题地访问它。

现在,每当我对 Android 的 Chrome 进行特征检测时,我都会得到未定义,就好像特征不可用一样。

我试过这样检测:

if ('caches' in window)...
if ('caches' in self)...

通过连接的设备等从控制台日志调用

我错过了什么?

PS:我知道 Safari 有非常基本的实现,所以我预计这会在 Safari 上出错,但在这里我在 Android 上用 Chrome 测试它;/

当页面通过 SSL 提供时,window.caches(缓存存储)似乎仅在 chrome 移动设备上可用。

我正在使用我的渐进式 Web 应用程序 (PWA) 进行测试,其中包含一个用于缓存的 Service-Worker 和一个清单文件。

在 LAN 上通过 HTTP 提供 PWA 时 window.caches 不可用。 当通过启用了 SSL 的域名提供服务时,window.caches 可用,其行为类似于 chrome 的桌面版。 无论您是 运行 在浏览器选项卡中还是独立(添加到主屏幕时),它都没有区别。

编辑: 事实上,同样的行为也适用于桌面上的 chrome。 我的应用程序上的缓存仅在工作,因为我使用 'localhost' 或 127.0.0.1 进行了测试。在任何其他域/IP 地址上,不使用 ssl 时缓存会被拒绝。