我正在编写一个小型 PWA,并尝试在 VueJS/QuasarJS 的页面中添加安装横幅。在第一步中,我尝试使用以下代码来捕捉 beforeinstallprompt 是否正在触发:
mounted() {
console.log("mounting"); // works
window.addEventListener("beforeinstallprompt", (e) => {
console.log(e); // this only fires during Lighthouse Audit
e.preventDefault();
this.deferredPrompt = e;
console.log(`'beforeinstallprompt' event was fired in mounted.`) // only during Lighthouse Audit
})
};
每当我加载应用程序时,它根本不会触发。但后来我尝试在 Chrome 开发工具中运行 Lighthouse 审计,突然它起作用了!此外,Lighthouse 显示 PWA 是可安装的。但是当我在没有 Lighthouse 的情况下做同样的事情时,它就行不通了。那么,我想念的灯塔在做什么......?
编译时,我尝试了两种方法,但都显示相同的结果(仅在我运行 Lighthouse 后才有效):
- 开发版本:quasar dev -m pwa --> 在本地主机上运行
- 已部署:quasar build -m pwa, firebase deploy --> 部署在 firebase
我在桌面和 Android 上尝试了 Firefox 和 Chrome,结果都一样。如果您有想法,请告诉我。
提前非常感谢!