问题标签 [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.

0 投票
0 回答
33 浏览

javascript - 有没有办法修改 chrome 添加到主屏幕弹出模式?我想将我自己的 UI 用于模态

在此处输入图像描述这是我想用我自己的 UI 修改的默认 chrome 添加到主屏幕模式。我已经搜索了解决方案,但不幸的是在这个问题上找不到任何东西

0 投票
2 回答
112 浏览

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函数是否被调用。

但我不知道如何测试userChoicePromise 解析为“已接受”,然后触发 if 条件。

请帮我。由于我是一个关于测试(在 Angular 中)的初学者,因此很高兴能够解释测试此类 Promises 背后的方法。

非常感谢您!

0 投票
1 回答
117 浏览

javascript - 如何在应用内浏览器中使用“beforeinstallprompt”

我需要让从应用内 Instagram 浏览器(仅限 Android)安装 PWA 成为可能。我了解应用内浏览器使用标准浏览器文档说支持 AndroidWebview,但实际上它对我不起作用。Lighеhouse - 确认 PWA 中没有错误我附上代码

0 投票
1 回答
142 浏览

android-webview - Instagram 应用内浏览器不支持 pwa 添加到主屏幕功能

https://caniuse.com/web-app-manifest https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent

这里说,android webview 支持添加到主屏幕。即使这样,在 instagram 的应用内浏览器中也无法正常工作。

甚至我们使用 beforeinstallprompt 触发的自定义安装也没有出现。

没有任何文档提及有关此的任何内容。

0 投票
0 回答
75 浏览

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,结果都一样。如果您有想法,请告诉我。

提前非常感谢!

0 投票
0 回答
15 浏览

javascript - “BeforeInstallPrompt”不会触发,但在 Lighthouse Audit 之后会触发

需要一些帮助来尝试捕获 beforeinstallpromot 事件。想法是网站用户将收到一个自定义横幅提示,询问他们是否要下载该应用程序。但是,单击横幅上的按钮会记录“无法读取 null 属性”的控制台错误。但是,当我运行 google lighthouse PWA 时,它会全部刷新并正常工作。记录该事件并且安装按钮有效。

我正在 Vue.js 中创建这个 PWA 应用程序

看了很多东西,但无济于事。

PWA 的 manifest 和 service worker 都正确注册。

是否与服务人员注册的顺序和试图捕获的事件有关?

0 投票
0 回答
29 浏览

progressive-web-apps - 手动卸载 PWA

以下代码可用于在 PWA 中安装程序:

现在卸载:

只能从浏览器中删除

在此处输入图像描述

现在我的问题在这里:

是否可以创建诸如手动安装(上面提到的)这样的代码,用户可以在不需要使用浏览器工具的情况下卸载程序?

谢谢大家的答案