Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ios中的PWA,防止多次添加主屏幕_Javascript_Angularjs_Asp.net Mvc_Polymer 1.0_Progressive Web Apps - Fatal编程技术网

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

Javascript ios中的PWA,防止多次添加主屏幕,javascript,angularjs,asp.net-mvc,polymer-1.0,progressive-web-apps,Javascript,Angularjs,Asp.net Mvc,Polymer 1.0,Progressive Web Apps,PWA应用程序在ios中无法正常工作,例如,在android中,如果您下次将应用程序添加到主屏幕中,它将不允许您添加应用程序,它将显示消息,例如应用程序已安装在您的手机中,但在ios中,它允许添加n个时间,如果用户已经有应用程序,这是不好的,那么为什么他们会多次添加它 有人能帮我吗? 我们能解决这个问题吗? 请给出一些建议,例如,这是否是pwa在ios中的限制 const isIos = () => { const userAgent = window.navigator.us

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

有人能帮我吗? 我们能解决这个问题吗? 请给出一些建议,例如,这是否是pwa在ios中的限制

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);      
        });
    }    

您可以使用BeforeInstallPrompt进行此操作。并警告用户添加新的PWA。 BeforeInstallPrompt的条件包括:

  • 该web应用尚未安装
  • 满足用户参与启发式(目前,用户已与域交互至少30秒)
  • 符合渐进式Web应用标准

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


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

我已经尝试过,但对我无效。你能帮我写代码吗?推到git并点击链接。除了上面的代码,我还需要写其他东西吗?有没有停止多个图标以添加主屏幕的解决方案?我也面临同样的问题。