【问题标题】:Prevent PWA from being installed阻止安装 PWA
【发布时间】:2026-02-06 09:05:02
【问题描述】:

有什么方法可以配置我的manifest.json 以禁用要求“安装”该站点的浏览器弹出窗口? 我正在使用以下 JavaScript 代码来防止它:

window.addEventListener('beforeinstallprompt', function(e) {
    e.preventDefault();
    return false;
});

但我还需要在 AMP 版本上阻止它,我无法在那里运行 JavaScript 代码。

【问题讨论】:

  • 如果您不想支持添加到主屏幕,为什么要从 AMP 链接到清单?
  • 你想通过禁用 PWA 支持来实现什么?
  • 这只是一个商业页面,我不想打扰用户

标签: javascript service-worker amp-html progressive-web-apps manifest.json


【解决方案1】:

目前,似乎没有禁用应用安装的明确设置。

一种解决方法是编辑manifest.json,使其不符合要求的criteria for app install banner,例如删除short_nameicons 声明。

【讨论】:

  • 这是一个非常聪明的想法,但没有其他选择吗?
  • 似乎没有明确的设置来禁用应用安装,所以我认为没有其他选择。如果您不想安装应用程序,听起来您甚至没有使用short_nameicon
【解决方案2】:

你可以这样做:

window.addEventListener('beforeinstallprompt', (event) => {
  event.preventDefault()
})

另一种解决方法是在site.webmanifest 中设置display: 'browser' 选项。

【讨论】:

    【解决方案3】:

    我没有编辑我的manifest.json 文件,而是尝试从index.html 中删除指向它的链接。我删除了这一行:

    <link rel="manifest" href="manifest.json">
    

    这在我的情况下似乎工作正常。

    【讨论】: