7

对于移动设备上 Caches API 的可用性,我有点困惑。

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

文档说明此 API 在服务工作者范围和窗口范围内都可用。

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

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

我试图以这种方式检测:

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

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

我想念什么?

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

4

1 回答 1

6

当页面通过 SSL 提供时,似乎window.caches(CacheStorage) 仅在 chrome mobile 上可用。

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

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

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

于 2019-09-17T23:20:29.003 回答