iOS 12 上的 PWA 不再与 Safari 共享 Service Worker 缓存?

Tar*_*tar 6 ios service-worker progressive-web-apps

对于 iOS 11 上的 PWA,我们通过将登录详细信息存储在 Service Worker Web 缓存中来解决在 Safari 中打开的外部第三方登录问题。

这在 iOS 12 中不再有效(在撰写本文时处于测试版)。我认为这肯定是因为 PWA 现在拥有自己的服务工作线程缓存,不再与 Safari 共享,但我无法确认这一点。

有谁知道是否有办法在 safari 和 PWA 之间共享服务工作线程缓存?请注意,我们已经尝试过 IndexedDB,但它不是共享的,当然 cookie 也不是。

据我所知,这意味着 PWA 完全被 safari 沙箱化,并且无法让第三方登录正常工作。有什么解决办法吗?

Tar*_*tar 1

从 iOS 12.2(2019 年 3 月)开始,现在可以进行 OAuth 登录,因为外部网站的链接现在在 PWA 应用内浏览器中打开,并且返回链接指向 PWA。因此,我现在可以通过第三方 Auth0 登录在 iOS 上部署 PWA 应用程序(它已经在 Android 和 Windows 上运行)。

但请注意,登录会话不会像早期版本的 iOS 那样在 Safari 和 PWA 之间共享。

我是从 Maximiliano Firtman 的这篇文章中了解到这一点的。