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 时缓存会被拒绝。
我对缓存 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 时缓存会被拒绝。