如何为 pwa 添加自定义安装按钮
how to add custom install button for pwa
我想在网站内为我的渐进式网络应用程序添加自定义 install
按钮。我红了很多文章并尝试了他们提供的答案。他们使用 beforeinstallprompt
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
但我面临的问题是我希望按钮直接安装 pwa 而不是触发安装提示。有可能吗,如果可以,我该如何实现。提前谢谢你。
试试下面的代码,
第 1 步 - 创建按钮或任何控制器
<button id="installApp">Install</button>
第 2 步 - 在 serviceworker 的脚本中添加以下 js 代码
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
const installApp = document.getElementById('installApp');
installApp.addEventListener('click', async () => {
if (deferredPrompt !== null) {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === 'accepted') {
deferredPrompt = null;
}
}
});
答案是,你不能。根据 manifest spec:
By design, this specification does not provide developers with an explicit API to "install" a web application.
我想在网站内为我的渐进式网络应用程序添加自定义 install
按钮。我红了很多文章并尝试了他们提供的答案。他们使用 beforeinstallprompt
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
但我面临的问题是我希望按钮直接安装 pwa 而不是触发安装提示。有可能吗,如果可以,我该如何实现。提前谢谢你。
试试下面的代码,
第 1 步 - 创建按钮或任何控制器
<button id="installApp">Install</button>
第 2 步 - 在 serviceworker 的脚本中添加以下 js 代码
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
const installApp = document.getElementById('installApp');
installApp.addEventListener('click', async () => {
if (deferredPrompt !== null) {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === 'accepted') {
deferredPrompt = null;
}
}
});
答案是,你不能。根据 manifest spec:
By design, this specification does not provide developers with an explicit API to "install" a web application.