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

问题描述 投票:1回答:4

iOS 12 Safari不支持某些PWA(Progressive Web App)的离线功能。 Safari似乎没有正确地缓存这些Web应用程序中的资源。

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

谷歌用来演示服务工作者的Air Horner PWA: Air Horner

这两个: 2048 puzzle Voice Memos

重现步骤(100%可重现):

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

这一直困扰我很长一段时间,因为我自己的网络应用程序也有类似的问题 - 在Android / Windows上的Chrome中运行良好,但只在iOS 12 Safari上失败。知道iOS 12 Safari有什么特别之处吗?非常感谢你!

ios safari service-worker progressive-web-apps
4个回答
0
投票

我有同样的问题,使用没有Workbox的服务工作者解决了问题 - 应用程序启动没有互联网连接,但有些东西搞砸了 - 它不起作用。


0
投票

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

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


0
投票

确实离线工作在主屏幕上。但是,缓存不会在新版本上更新,并且主屏幕链接停止工作。要刷新缓存,必须从Safari访问Web应用程序,然后再次运行。这实际上是次优的,并且有望得到修复。


0
投票

我的iPhone 6S在iOS 12.1.2中解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.