我找到了几个模板,涵盖了如何触发Firefox和Chrome添加到主屏幕弹出窗口。
这一切看起来都很简单,一个空的service-worker.js文件清单文件和javascript类似:
<link rel="manifest" href="manifest.json">
<script>
if ('serviceWorker' in navigator) {
console.log("Will the service worker register?");
navigator.serviceWorker.register('service-worker.js')
.then(function(reg){
console.log("Yes, it did.");
}).catch(function(err) {
console.log("No it didn't. This happened:", err)
});
}
</script>
但是,在以不同的时间间隔重新访问页面后,没有显示添加到主屏幕弹出窗口。
我注意到的一件事是,在https://manifest-validator.appspot.com/上验证清单时,验证在上传文件时是成功的。但是,当粘贴我们服务器上的链接位置时,它会失败“未检测到清单...”
这可能是相关的吗?确保文件存在且输入的路径以https:开头是正确的
或者设置还有什么问题?
谢谢, 彼得
答案 0 :(得分:2)
要显示添加到主屏幕弹出窗口some requirements。
此外,
然后,Chrome会使用[...]访问频率启发式方法来确定何时展示横幅。
所以很可能在你的情况下不满足其中一些要求,或者你必须在一段时间后访问你的webapp。
要测试您的网络应用是否符合这些要求,您可以打开Chrome DevTools,审核标签:
并执行渐进式Web应用程序审核。
完成后,您将能够看到“是否可以提示用户安装Web App”:
如果您出于测试目的需要,也可以手动触发安装横幅。在应用程序选项卡,清单部分,您将看到“添加到主屏幕”按钮:
希望有所帮助!
答案 1 :(得分:1)
当同时打开多个标签时,确认“未检测到清单”。
关闭所有应用程序标签并重新加载是(再次)获得清单的唯一方法。
值得一提的是,这两个标签分别是“开发”和“生产”。
我想另一种解决方案可能是清除产品中的缓存。
总而言之,关闭所有重复的选项卡是确保清单重新初始化的良好经验。
答案 2 :(得分:1)
就我而言,需要 关闭并重新打开DevTools 。
此外,为避免发生任何冲突,请 关闭所有重复的标签页 。参见@JackStone's answer。