问题标签 [beforeinstallprompt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 如何在 Jasmine/Angular 中测试 BeforeInstallPromptEvent?
我正在为一个对话框组件编写测试,该组件处理调用函数时手动提示的 PWA 安装事件。然后它将解决从BeforeInstallPromptEvent.userChoice
属性返回的承诺。
但是,当我尝试测试此功能时,我从 jasmine 收到错误消息:
'userChoice.then 不是函数'
我理解这一点,因为我尝试使用 spyOn 对其进行监视,然后检查结果。
我用 Promises 尝试了其他一些事情,因为 userChoice 返回了一个已解决的承诺(https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent),但到目前为止没有任何效果。
这是我要测试的功能。BeforeInstallPromptEvent
存储在 installEvent 对象中,该对象从 传递到组件,app.ts
然后存储在数据中。
在我的测试规范中,我使用以下内容创建了一个 mockData 对象:
到目前为止,我的测试规范(经过多次不同的尝试)是这样的:
或者使用产生错误的spyOn
函数:userChoice
有了这个,我设法已经测试了该data.installEvent.prompt
函数是否被调用。
但我不知道如何测试userChoice
Promise 解析为“已接受”,然后触发 if 条件。
请帮我。由于我是一个关于测试(在 Angular 中)的初学者,因此很高兴能够解释测试此类 Promises 背后的方法。
非常感谢您!
javascript - 如何在应用内浏览器中使用“beforeinstallprompt”
我需要让从应用内 Instagram 浏览器(仅限 Android)安装 PWA 成为可能。我了解应用内浏览器使用标准浏览器文档说支持 AndroidWebview,但实际上它对我不起作用。Lighеhouse - 确认 PWA 中没有错误我附上代码
android-webview - Instagram 应用内浏览器不支持 pwa 添加到主屏幕功能
https://caniuse.com/web-app-manifest https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent
这里说,android webview 支持添加到主屏幕。即使这样,在 instagram 的应用内浏览器中也无法正常工作。
甚至我们使用 beforeinstallprompt 触发的自定义安装也没有出现。
没有任何文档提及有关此的任何内容。
vue.js - “BeforeInstallPrompt”仅在 Lighthouse Audit 之后触发
我正在编写一个小型 PWA,并尝试在 VueJS/QuasarJS 的页面中添加安装横幅。在第一步中,我尝试使用以下代码来捕捉 beforeinstallprompt 是否正在触发:
每当我加载应用程序时,它根本不会触发。但后来我尝试在 Chrome 开发工具中运行 Lighthouse 审计,突然它起作用了!此外,Lighthouse 显示 PWA 是可安装的。但是当我在没有 Lighthouse 的情况下做同样的事情时,它就行不通了。那么,我想念的灯塔在做什么......?
编译时,我尝试了两种方法,但都显示相同的结果(仅在我运行 Lighthouse 后才有效):
- 开发版本:quasar dev -m pwa --> 在本地主机上运行
- 已部署:quasar build -m pwa, firebase deploy --> 部署在 firebase
我在桌面和 Android 上尝试了 Firefox 和 Chrome,结果都一样。如果您有想法,请告诉我。
提前非常感谢!
javascript - “BeforeInstallPrompt”不会触发,但在 Lighthouse Audit 之后会触发
需要一些帮助来尝试捕获 beforeinstallpromot 事件。想法是网站用户将收到一个自定义横幅提示,询问他们是否要下载该应用程序。但是,单击横幅上的按钮会记录“无法读取 null 属性”的控制台错误。但是,当我运行 google lighthouse PWA 时,它会全部刷新并正常工作。记录该事件并且安装按钮有效。
我正在 Vue.js 中创建这个 PWA 应用程序
看了很多东西,但无济于事。
PWA 的 manifest 和 service worker 都正确注册。
是否与服务人员注册的顺序和试图捕获的事件有关?