我在掌握 google chrome 的“Service Workers”和“Manifest.json”方面遇到了一些麻烦。
我的最终目标是当用户通过他们的移动设备在 android 上的 chrome 浏览我的一个网站时,会出现一个“添加到主屏幕”按钮。
所以我有我的 manifest.json,在根目录和<head>
标签中我有以下内容:
<link rel="manifest" href="/manifest.json">
当我第一次将它放在 head 标记中,然后转到桌面上 chrome 开发工具中的“应用程序”选项卡时,它看到了 manifest.json 并正确显示了其中的所有信息。然后,只要我浏览到同一域上的不同页面,开发工具就会显示消息“未检测到清单”。
我不知道为什么。很明显,如果我检查页面,转到该<head>
部分并找到link rel
,我右键单击 manfiest.json 链接并在新选项卡中打开 - 它可以完美加载。我也使用manifest.json 验证器对其进行了验证,它报告“成功:清单有效!”。
为什么会暂时退出?我怎样才能让这个该死的按钮出现?
旁注,我的服务人员代码(再次在 中<head>
)如下:
<script type='text/javascript'>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/js/service-worker.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
</script>
我在控制台“ServiceWorker 注册成功”中收到消息。 但是service-worker.js
文件中没有任何内容,肯定需要一些代码吗?我发现的教程都没有提到在其中放置任何数据。这很令人困惑。