为啥 iOS 在 manifest.json 更改后不会启动 PWA?
Posted
技术标签:
【中文标题】为啥 iOS 在 manifest.json 更改后不会启动 PWA?【英文标题】: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 确实会检查更新,并且出于某种原因决定不继续加载应用程序。 【参考方案1】:我面临同样的情况,目前我正在通过在 5 秒后添加检查来解决它,如果 pwa 尚未加载,我会触发重新加载以解决问题。
但这远非理想,所以我会继续寻找更好的解决方案
【讨论】:
以上是关于为啥 iOS 在 manifest.json 更改后不会启动 PWA?的主要内容,如果未能解决你的问题,请参考以下文章
图标的问题,以及更改electron.manifest.json会导致崩溃。
Chrome 扩展的 Manifest.json 中的自定义值?
Webpacker 在 /app/public/packs/manifest.json 中找不到 application.css