iOS 12 Safari 不支持某些 PWA(Progressive Web App)的离线功能。看起来 Safari 没有正确缓存这些网络应用程序中的资源。
例如,以下 PWA 无法在 iOS 12 和 12.1 中离线工作,但它们都可以在 Android 或 Windows 上的 Chrome 中完美运行:
google用来演示Service Worker的Air Horner PWA:
Air Horner
还有这两个:
2048 puzzle
Voice Memos
重现步骤(100% 可重现):
- 使用 Safari(iOS 12 或 12.1)访问 PWA
- 在 Safari 中关闭 PWA 选项卡
- 在 iPhone 上按下主页按钮将 Safari 设置为后台
- 按下 iPhone 电源按钮关闭屏幕
- 再次按下 iPhone 电源键唤醒手机
- 关闭来自 iPhone 控制中心的所有网络连接(wifi 和蜂窝网络)
- 打开 Safari,再次访问 PWA --> 网页应用加载失败
这一直困扰着我很长时间,因为我自己的网络应用程序也有类似的问题 - 在 Android/Windows 上的 Chrome 中运行良好,但在 iOS 12 Safari 上仅失败。知道 iOS 12 Safari 有什么特别之处吗?非常感谢!
Best Answer-推荐答案 strong>
我遇到了同样的问题,在没有 Workbox 的情况下使用 service worker 解决了这个问题 - 应用程序在没有互联网连接的情况下启动,但缓存出现问题 - 它无法正常工作。
关于iOS 12 不支持部分 PWA 的离线功能,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/53439379/
|