【问题标题】:Progressive Web App on iOS 12.2 stuck in offline pageiOS 12.2 上的 Progressive Web App 卡在离线页面
【发布时间】:2019-09-23 08:55:07
【问题描述】:

我通过 safari 及其“添加到主屏幕”选项安装了一个自定义渐进式网络应用程序。

如果我在没有互联网连接的情况下导航到特定页面,我会按预期获得 safari 的本地离线页面。该页面显示以下消息:

Safari 无法打开该页面,因为您的 iPhone 未连接到 Internet。

如果我再次打开互联网连接,PWA 仍会显示原生 safari 离线页面,使用户无法重新加载页面或导航到另一个页面。

简而言之,如果我在没有互联网连接的情况下访问我的 PWA 一次,PWA 将永远显示 safari 的原生离线页面。

这是 iOS 12.2 上渐进式 Web 应用程序的预期行为吗?

我的 Service Worker 如下所示:

self.addEventListener('fetch', (evt) => {
    return;
});

即使我按照article 中的描述提供自定义离线页面,如果我再次打开互联网连接,PWA 仍会卡在离线页面上。

【问题讨论】:

  • 我注意到与我一直在测试的 iOS PWA 完全相同的行为。即使我强制关闭它并再次打开它,它仍然显示消息。但是,如果我重新启动 iPhone XS Max,它确实可以正常工作。您是否提交了错误报告?
  • 我向 Apple iPhone 反馈页面提交了以下内容(使用你的一些话):“如果我在没有互联网连接的情况下访问我的 PWA 一次,PWA 将永远显示 Safari 的原生离线页面(或直到我重新启动 iPhone)。”
  • @user1946932 感谢您的帮助。是否可以发布错误报告的公共链接?作为一种解决方法,我正在处理缓存的自定义离线页面,其中包括重新加载页面或导航到另一个 url 的按钮。如果效果好的话,我将在此处发布指南。无论如何,我很想知道这是否是一个实际的错误,如果您离线访问它们一次,它将使许多渐进式 Web 应用程序(没有自定义缓存策略和离线页面)无用。
  • 我刚刚在 apple.com/feedback/iphone.html 提交了它。如果一切顺利,我们也很想看看您的指南。
  • 到目前为止,您的解决方法是否成功?

标签: ios progressive-web-apps


【解决方案1】:

当没有默认的离线后备页面时,这是预期的行为。相反,我建议创建一个适当的离线后备页面。您可以在Create an offline fallback page 中复制/粘贴完整的示例。

它包括您需要的service worker code,以及一个basic offline page,它将在网络或服务器恢复后尝试重新加载页面。你可以在https://basic-pwa.glitch.me/看到一个工作演示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多