我们有一个Progressive Web App,它会提示用户使用“添加到主屏幕”横幅。
添加到主屏幕效果很好,但在用户从主屏幕启动页面后,有时仍会提示他们再次安装应用程序。我在这里发帖是因为我找到的所有资源都不讨论这个问题或如何解决它。
TL; DR从主屏幕启动应用程序仍然要求他们使用“添加到主屏幕”提示安装应用程序。
正如@ Mr.Robot所建议的,我开发了一小段代码来解决问题。 这是结果代码:
window.addEventListener("beforeinstallprompt", (ev) => {
if (isStandalone()) {
// PWA already installed.
event.preventDefault();
return false;
} else {
// PWA not installed.
}
});
function isStandalone() {
// Check if device supports service workers
if (!('serviceWorker' in window.navigator)) return false;
// Check for Android
if (window.matchMedia('(display-mode: standalone)').matches) return true;
// Check for iOS
if (window.navigator["standalone"] == true) return true;
return false;
}