iOS 113上的PWA问题

时间:2018-04-06 09:06:00

标签: ios safari progressive-web-apps

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

谢谢!

3 个答案:

答案 0 :(得分:5)

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

<link rel="manifest" href="/tracker/site.webmanifest">

我的项目是一个简单的PWA,它使用Google的OAuth进行登录。我正被重定向到Safari进行登录,但无法返回到该应用程序(在主屏幕上)。希望它也对您有用,我浪费了2天的时间来寻找解决方案。

Anand的回复告诉我,具有脱机功能的PWA需要实现服务工作者,因为11.3(或不确定的11.4)和 NOT 清单中都支持它们。

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

答案 1 :(得分:1)

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

如何测试 - 在android中找到没有服务工作者的PWA站点并添加到主屏幕。当我在三星设备中试用它时,它只显示&#34;删除&#34;选项,没有卸载选项。当我添加了一个有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中验证您的manifest.json和服务工作者。

清单文件中的

3)Check on scope attribute,以确保覆盖您打算覆盖的整个域。如果您的范围仅涵盖domain.com/myapp,则尝试从任何来源打开时,将在浏览器中打开domain.com/otherapp。

答案 2 :(得分:0)

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