Chrome 未在我的 PWA 中显示“添加到主屏幕”

Posted

技术标签:

【中文标题】Chrome 未在我的 PWA 中显示“添加到主屏幕”【英文标题】:Chrome not showing "add to homescreen" in my PWA 【发布时间】:2017-11-07 16:47:37 【问题描述】:

我关注了 Google 的 first PWA tutorial 并创建了自己的项目 https://my-pwa-77d8a.firebaseapp.com。一切看起来都很好:

项目有一个manifest.json文件 我在 Firebase 上使用 HTTPS 代码有<meta name="mobile-web-app-capable" content="yes">标签 我的manifest.json 文件包含:图标规格、名称、short_name、start_url 我使用 Vue.js 作为我的主要框架,其余的都是用 vanilla JS 构建的 service worker 已设置并正常运行 控制台没有显示错误

ma​​nifest.json

  
    "short_name": "PizzaApp",
    "name": "My delicious PWA",
    "icons": [
      
        "src": "img/launcher-icon-2x.png",
        "sizes": "96x96",
        "type": "image/png"
      ,
      
        "src": "img/launcher-icon-3x.png",
        "sizes": "144x144",
        "type": "image/png"
      ,
      
        "src": "img/launcher-icon-4x.png",
        "sizes": "192x192",
        "type": "image/png"
      
    ],
    "start_url": "/index.html",
    "display": "standalone",
    "orientation": "portrait"
  

我可以从移动设备和桌面手动添加到主屏幕。但是 Chrome 从不显示 添加到主屏幕 横幅。怎么了?

已解决

如下所述,我的服务人员试图缓存一个丢失的offline.html 文件。我创建了文件,清除了手机的缓存,一切正常。

【问题讨论】:

我不知道这是否是问题所在,但my-pwa-77d8a.firebaseapp.com/offline.html 正在返回 404。 我已经解决了offline.html 问题,但仍然没有显示横幅。 成功了!我创建了offline.html,清除了我手机的缓存,然后浏览器显示了横幅。发表你的答案,我会接受。 我有这个问题!我有在 https 中提供的站点,我有一个 manifest.json 并且我有一个正在实例化的服务人员(它是空的,但这不应该是问题),但它没有提示用户添加到主屏幕。如果我转到手机中的浏览器设置并将其添加到主屏幕,它可以工作,但它不会提示用户?有人有任何线索吗?我完全没有错误...会是什么? @Antonio 是的......可能在一些更新之后发生......甚至我的 pwa 也不再发出通知...... 【参考方案1】:

问题是您的 offline.html 文件 (https://my-pwa-77d8a.firebaseapp.com/offline.html) 返回 404。

【讨论】:

是的,确实如此!我的工作人员试图缓存丢失的文件。我创建了offline.html,清除了我手机的缓存,一切正常!谢谢。

以上是关于Chrome 未在我的 PWA 中显示“添加到主屏幕”的主要内容,如果未能解决你的问题,请参考以下文章

如何在移动设备上发送推送通知(Android Chrome)PWA

ios PWA(添加到主屏幕)未在 Angular 中为视频标签请求相机权限

Chrome 未在我的 OpenID Connect 工作流程 (ASP.NET OWIN) 中保存/返回 Nonce cookie

样式化组件未在 Chrome 中显示

检查用户是不是已经在 Chrome 的主屏幕上安装了 PWA?

Flutter pwa app 未检测到服务人员