iOS 113上的PWA问题

我有一个PWA,我一直在使用,直到我将手机更新到11.3( 介绍服务工作者支持,所以在我的iPhone它只是一个书签 ),所有工作就像一个魅力。 在我更新到iOS 11.3之后,我无法进入我的应用程序,因为我有一个外部登录(在其他域中)所以每次我尝试打开我的打开时,这将打开一个safari浏览器来进行身份validation。 在iOS中的PWA之前,外部URL在相同的打开状态下打开(没有打开的safari)。 你知道这是否是正确的行为,如果没问题,我该如何解决?

谢谢!

当没有服务的PWA工作时(您的浏览器不支持它或您的应用程序没有)将添加到主屏幕,它只是一个书签。 当浏览器找到SW时,它会创建一个包(如apk)。

如何测试 – 在android中找到没有服务工作者的PWA站点并添加到主屏幕。 当我在三星设备中试用它时,它只显示“删除”选项而没有卸载选项。 当我添加了一个有SW的PWA时,得到了卸载选项。 当服务工作者在场时,我还能够找到Chrome生成的apk。

现在在iOS上 – 我能想到的3种可能性。 1)我的理论基于上述行为在有和没有服务工作者的PWA上,你的iOS 11.2.x创建的主页图标是一个书签,safari的新版本将其视为在浏览器中打开它的书签。 我无法测试这个,因为我已经升级到11.3并且没有预先11.3 PWA图标。

2)如果您重新安装了该图标(通过删除并再次添加到主屏幕)仍然存在问题,可能是因为您的清单文件或服务工作者文件与Safari有一些问题/兼容性。

由于我们没有类似于Lighthouse for safari的东西,您可以在Chrome Lighthouse中validation您的manifest.json和服务工作者。

3) 检查清单文件中的范围属性 ,以确保覆盖您想要覆盖的整个域。 如果您的范围仅涵盖domain.com/myapp,则尝试从任何来源打开时,将在浏览器中打开domain.com/otherapp。

我设法通过删除清单元标记来解决此问题:

 

我的项目是一个简单的PWA,它使用Google的OAuth进行登录。 我被重定向到Safari登录,无法返回应用程序(在我的主屏幕上)。 希望它也适合你,我浪费了2天试图找到解决方案。

Anand的回复告诉我,离线的PWA需要实现服务工作者,因为它们在11.3(或11.4,不确定)和NOT清单中得到支持。

无论如何,这对我有用,希望它也有助于其他人。

似乎在上一个iOS版本11.4这个问题已经解决,我认为现在safari共享浏览器和PWA之间的上下文,例如来自PWA cookie可以访问throw safari。 但是我认为当你打开PWA并且你正在重定向登录时会出现问题(safari打开),一旦你登录就停留在浏览器中(iOS不会返回到PWA,但这是第一步)