【问题标题】:Why won't iOS launch a PWA after changes in its manifest.json?为什么 iOS 在 manifest.json 更改后不会启动 PWA?
【发布时间】:2019-02-21 21:24:44
【问题描述】:

我制作了一个 PWA,以便我的网络应用可以离线使用。这适用于 iOS。但是,在我对其manifest.json(在服务器上)进行更改后,添加到主屏幕的网络应用程序将仅显示其初始屏幕图像,然后挂在白屏上。

这甚至发生在更改版本号这样小的更改之后(据说这会使 iOS 检查服务器上的更新文件)。我在 iOS 12.1.4 和 iOS 12.1 模拟器上进行了测试。

我怎样才能防止这种情况发生?

这是我的 manifest.json,为简洁起见删除了图标列表:

{
  "name": "My App Name",
  "short_name": "App Name",
  "version": "2.2.2",
  "theme_color": "#ffcc00",
  "background_color": "#382d00",
  "display": "standalone",
  "orientation": "landscape",
  "scope": "/",
  "start_url": "/",
  "manifest_version": 2
}

更新:当我转到 URL 时,即使是普通的 iOS Safari 也会显示一个空白屏幕,直到我从其历史记录中删除该网站。

【问题讨论】:

  • 它从documentation 中说,如果您将来更新 manifest.json 文件,除非用户将您的应用重新添加到他们的主页,否则这些更改不会自动被用户接收屏幕。这是预期的行为。
  • 有趣!不知何故,我在那个页面上找不到那个。无论如何,我的主要问题是,在更改清单后,Web 应用程序除了启动屏幕和白屏之外什么都不会显示。所以显然 iOS 确实会检查更新,并且出于某种原因决定不继续加载应用程序。

标签: ios progressive-web-apps


【解决方案1】:

我面临同样的情况,目前我正在通过在 5 秒后添加检查来解决它,如果 pwa 尚未加载,我会触发重新加载以解决问题。

但这远非理想,所以我会继续寻找更好的解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多