ios中的PWA,防止多次添加主屏幕

时间:2018-12-23 14:43:13

标签: javascript angularjs asp.net-mvc polymer-1.0 progressive-web-apps

PWA应用无法在ios中正常运行,例如在android中,如果您下次将应用添加到主屏幕中,则它不允许您添加它,则会显示消息,例如该应用已安装在手机中,但在ios中允许添加n个时间,如果用户已经有应用程序,那么这是不好的,那么为什么他们会多次添加它。

有人可以帮我吗? 我们可以解决这个问题吗? 请提出类似的建议,这是ios在pwa中的限制!

const isIos = () => {
      const userAgent = window.navigator.userAgent.toLowerCase();
      return /iphone|ipad|ipod/.test(userAgent);
    }
    const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);
    if (isIos() && !isInStandaloneMode()) {
        var deferredPrompt;
        window.addEventListener('beforeinstallprompt', function (e) {
          // Prevent Chrome 67 and earlier from automatically showing the prompt
          e.preventDefault();
          // Stash the event so it can be triggered later.
          deferredPrompt = e;
              var display = true;
            setInterval(function () {
            document.getElementById("balloonMessage").style.display = display ? "none" : "block";
            display = !display;
          }, 5000);      
        });
    }    

2 个答案:

答案 0 :(得分:0)

尚未完全支持iOS中的PWA。它只能完成离线缓存,仅此而已。 Apple iOS的A2HS版本仍然是手动版本,大多数用户甚至不知道该功能存在。

如果要触发该A2HS横幅,则需要执行一个自定义JavaScript事件并弹出一个自定义A2HS HTML横幅,以“指导”用户如何在其主屏幕上添加该网站。

答案 1 :(得分:-1)

您可以为此使用BeforeInstallPrompt。并警告用户有关添加新的PWA。 BeforeInstallPrompt的标准包括以下内容:

  • 该网络应用尚未安装
  • 满足用户参与启发式的需求(当前,用户与域互动至少30秒)
  • 满足渐进式Web App标准