我们的要求是让我们的用户通过 URL 登录到一个应用程序,并且在将应用程序作为 PWA 添加到他们的主屏幕后,保持登录状态,这样就不需要第二次登录到已安装的 PWA 了。这在 Android/Chrome 下当然是可能的,其中登录状态最初可以由 PWA 通过各种机制(包括 cookie、IndexedDB、缓存)存储和访问。
但是,现在在我们看来,iOS 14/iPadOS 14 下的 PWA 是紧密沙箱化的,Safari 无法将登录状态传递给它。多年来,通过各种版本的 iOS,提供了各种共享机制,但在后续版本中已过时。这些包括:
一种不依赖浏览器共享存储的机制是将服务器生成的令牌添加到 URL ( ref ), ( ref ) - 这里的问题是它扰乱了 Android/Chrome,它start_url在网络中使用未修改的应用清单。
多年来,这是一个引发了许多 SO 问题的问题(上面提到了其中三个),其中一些已经得到了解决方案的回答,这些解决方案显然在早期版本的 iOS 下有效。我们现在想要的是一个既能在最新版本下运行又能在 Android/Chrome 下运行的解决方案。有什么优惠吗?
当我在iOS设备上打开我的网络应用程序,登录并重新启动Safari时,我仍然登录.
但是当我用"添加到主屏幕"添加此页面时,每次单击该页面的图标时,我都必须再次登录.
有没有使用Devise gem的解决方法或者除了构建本机应用程序之外没有别的办法吗?
在我的 PWA(日历)中,用户可以选择一个日期并保存。这适用于本地存储。
但是如果用户现在将 PWA 添加到他或她的主屏幕(“添加到主屏幕”),则这些数据将不会被接管,必须重新输入。有没有办法访问这些数据?