iOS 12不支持某些PWA的离线功能

时间:2018-11-23 00:27:57

标签: ios safari service-worker progressive-web-apps

iOS 12 Safari不支持某些PWA(渐进式Web应用程序)的脱机功能。似乎Safari无法在这些Web应用程序中正确缓存资源。

例如,以下PWA无法在iOS 12和12.1中脱机工作,但它们都可以在Android或Windows上的Chrome中完美运行:

Google用于演示Service Worker的Air Horner PWA:
Air Horner

这两个:
2048 puzzle
Voice Memos

复制步骤(100%可复制):

  1. 使用Safari(iOS 12或12.1)访问PWA
  2. 在Safari中关闭PWA标签
  3. 在iPhone上按下主页按钮可将Safari设置为后台
  4. 按下iPhone电源按钮以关闭屏幕
  5. 再次按下iPhone电源按钮以唤醒手机
  6. 关闭iPhone控制中心的所有网络连接(WiFi和蜂窝网络)
  7. 打开Safari,再次访问PWA->网络应用无法加载

这困扰了我很长时间,因为我自己的Web应用程序也存在类似的问题-在Android / Windows上的Chrome浏览器中可以正常运行,但在iOS 12 Safari上只能运行。知道iOS 12 Safari有什么特别之处吗?非常感谢你!

4 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,使用不带Workbox的Service Worker解决了该问题-应用程序启动时没有互联网连接,但缓存却有些混乱-它无法正常工作。

答案 1 :(得分:0)

我遇到了完全相同的问题。

我意识到的是,在激活服务工作者时,所有缓存均已正确设置,但是如果您使用iOS任务管理器关闭safari(不仅减少了它),那么当返回PWA时,所有缓存的文件都会被完全删除

答案 2 :(得分:0)

实际上,脱机可在主屏幕中使用。但是,缓存不会在新版本上更新,并且Homescreen链接将停止工作。要刷新缓存,必须从Safari访问该Web应用程序,然后它才能再次运行。这确实是次优的,希望可以解决。

答案 3 :(得分:0)

此问题已在iPhone 6S的iOS 12.1.2中解决。