【问题标题】:Why does a PWA based on Workbox produce an error when launched from the homescreen on iOS 12?为什么基于 Workbox 的 PWA 在 iOS 12 上从主屏幕启动时会产生错误?
【发布时间】:2018-10-03 12:29:53
【问题描述】:

我可以在清除数据后在浏览器中运行该应用程序,但如果我将其添加到主屏幕并尝试从那里重新启动,我会得到一个显示以下错误的普通页面:

Safari cannot open the page. The error was: "FetchEvent.respondWith received an error: Returned response is null."

随后在浏览器中启动也会出现该错误。我必须再次在浏览器中“清除数据”才能让它再次工作。

我正在使用 Workbox v3.6.2(在撰写本文时是最新版本),并且我的 iPhone 运行的是 iOS 12。

This 看起来很可疑,但我有点想不通(好吧,无论如何,解决方法是)。这让我想再次尝试降级到 iOS11.X,和/或安装 Technology Preview 59。

【问题讨论】:

    标签: progressive-web-apps ios12 workbox


    【解决方案1】:

    我也有同样的问题。在 iOS 12.0.0 上正常工作,但在更新到 12.0.1 版本后,我遇到了和你一样的错误。我已经测试了同一个应用程序,但在两个不同的设备 (iPhone) 上使用了两个不同版本的 iOS。

    【讨论】:

      【解决方案2】:

      看起来这个错误有多种可能的原因 - 我已经遇到过两次了;

      情况1:需要添加ROOT证书并在设备上设置为受信任。

      我的条件;

      1. 从本地服务器加载 pwapp 时,我在装有 iOS 12 的 iPhone 5s 上遇到了同样的错误。

      2. 在服务器的开发机器上使用自签名证书。

      3. 不使用 Workbox。

      4. 没有如果使用来自 iOS 认可的证书颁发机构的 ssl 证书从提供商托管的服务器加载 pwapp 会出现问题。

      原来这与安全证书有关 - (不使用 mac,因此无法调试到设备上的网络/安全问题级别/直接进行全面诊断)。

      修复是;

      1. 创建一个自签名根证书并将其用于我的服务器。
      2. 将根证书 .pem 文件转换(副本)为 .der
      3. 通过设备上的 Safari 访问 .der/添加配置文件,设置为受信任。

      (正确的方法是做根证书、中介证书和服务器证书,使用服务器证书并通过 url 提供根证书或通过电子邮件将其发送到设备上的电子邮件客户端。)

      有用的链接;

      Getting cert in General->About->Certificate Trust Settings

      情况 2: 事实证明,当您可以访问服务器时,您必须至少从主屏幕图标访问 pwapp 一次。

      复制; (联网)

      1. 从主屏幕删除图标并清除 Safari 历史记录和网站数据

      2. 访问 pwapp 网址

      3. 添加到主屏幕但不启动

      4. 关闭网络

      5. 尝试从主屏幕启动 => 得到错误

      6. 打开网络,从主屏幕启动 pwapp => 好的。

      7. 关闭 pwapp,关闭网络,从主屏幕启动 pwapp => 好的。

        看起来像一个 iOS/Safari/Webkit 错误

      【讨论】:

      • 我认为这不是我的问题,因为我从 AWS S3 提供我的内容,并且我们在那里有真正的证书。实际上,我的一个抱怨是 os x 上的 safari 没有 chrome 所具有的端口转发功能(尽管它在 chrome 中也被破坏了,在 M70 bugs.chromium.org/p/chromium/issues/detail?id=896603> 中),这将允许我从 localhost 运行 PWA使用 http,而不是 https。这就是我在生产服务器的对等设备上进行开发的真正原因。
      • 嗨,Max,是的,对于任何停止通信的东西来说,它看起来都像是一条包罗万象的错误消息。认为您可以在 OSX 上使用 chrome(带有 remotedebug-ios-webkit-adapter)和端口转发来使用 iOS 模拟器进行 localhost - 请参阅onsen.io/v2/guide/pwa/advanced.html
      • 答案已修改 - 添加了新发现。
      猜你喜欢
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2019-05-24
      • 2019-11-21
      • 2018-09-11
      • 1970-01-01
      相关资源
      最近更新 更多