【发布时间】:2018-04-07 22:36:14
【问题描述】:
在使用 Lighthouse 测试网络应用程序后,我遇到了这样的错误:
不会提示用户安装 Web App 浏览器可以 主动提示用户将您的应用添加到他们的主屏幕,这 可以带来更高的参与度。了解更多。
失败:服务人员 未成功提供清单的 start_url。
满足here 描述的所有条件:
- 网站通过 HTTPS 提供服务。
- 服务工作者已注册。
- Service Worker 的范围包括您审核的页面和 Web 应用清单的 start_url 属性中指定的页面。
- 存在 Web 应用清单并满足以下条件:具有 有效的名称属性。具有有效的 short_name 属性。具有有效的 start_url 属性。具有有效的显示属性,值为 独立、全屏或最小用户界面。指定一个图标位于 至少 192 像素 x 192 像素。
清单文件通过脚本呈现。重要的变量是
scope_url = 'https://website.com/app/'
start_url = 'https://website.com/app/about/'
ServiceWoker.js 非常简单:
self.addEventListener('push', function(e) {
...
});
self.addEventListener('notificationclick', function (e) {
...
);
Web App 和 sw.js 从 start_url 提供。
我还能检查什么?
编辑 1. 当我尝试从 Chrome 控制台“添加到主屏幕”时,我得到:
Site cannot be installed: the page does not work offline
与comment 相近的是什么@
【问题讨论】:
-
我们仍然需要一个好的答案。一直在敲打我的头,试图弄清楚为什么会发生这种情况。亚历克斯,自从你发帖后你学到了什么吗?
-
@karns 实际上不是,在更改 start_url 并添加 fetch 后,一切都按预期工作。
-
Alex,所以有两件事:1)您确实使用绝对 URL 作为 start_url?想知道是否使用相对 URL 是我的问题 - 不这么认为。 2) 如果您删除了您的应用程序依赖项之一,错误会再次出现吗? IE。删除 Angular 应用程序的 Angular Core。试图缩小这个问题!谢谢
-
另外,如果错误再次出现,想知道您是否尝试使用相对路径..
-
@karns 我无法测试,因为我有一个工作配置。但是,我有一个有趣的观察——在使用 lighthouse 测试 pwa 应用程序后,我再次遇到了同样的错误。同时,在移动浏览器中,安装应用程序的提示按预期显示。
标签: google-chrome service-worker progressive-web-apps lighthouse