Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Ionic framework 无法注册服务工作者_Ionic Framework_Progressive Web Apps_Ionic4 - Fatal编程技术网

Ionic framework 无法注册服务工作者

Ionic framework 无法注册服务工作者,ionic-framework,progressive-web-apps,ionic4,Ionic Framework,Progressive Web Apps,Ionic4,我的应用程序在ionic 4下。 我安装了pwa部件,包括: ng add @angular/pwa --project app 然后我使用:ionic build--prod构建 并通过以下方式部署到firebase:firebase部署 但我有两个问题: 1) 当我从android手机浏览应用程序时,“添加到屏幕”的横幅不会显示。 即使根url上有以下代码: showBtn: boolean = false; deferredPrompt; constructor(private

我的应用程序在ionic 4下。 我安装了pwa部件,包括:

ng add @angular/pwa --project app
然后我使用:
ionic build--prod构建

并通过以下方式部署到firebase:
firebase部署

但我有两个问题:

1) 当我从android手机浏览应用程序时,“添加到屏幕”的横幅不会显示。 即使根url上有以下代码:

showBtn: boolean = false;
  deferredPrompt;
  constructor(private modalController: ModalController, public authUser: AuthUserService, private router: Router){}

  ionViewWillEnter(){
    window.addEventListener('beforeinstallprompt', (e) => {
      // Prevent Chrome 67 and earlier from automatically showing the prompt
      e.preventDefault();
      // Stash the event so it can be triggered later on the button event.
      this.deferredPrompt = e;

    // Update UI by showing a button to notify the user they can add to home screen
      this.showBtn = true;
    });

    //button click event to show the promt

    window.addEventListener('appinstalled', (event) => {
     alert('installed');
    });


    if (window.matchMedia('(display-mode: standalone)').matches) {
      alert('display-mode is standalone');
    }
  }
2) 当我启动lighthouse audit时,我收到以下警告:

Does not register a service worker that controls page and start_url
我尝试过卸载、重新安装、重建所有东西,但没有任何效果。
在ionic docs上,我找不到任何解决此问题的线索。

许多天之后,我能够使其正常工作

首先,我将以下代码段添加到firebase.json文件的hosting属性中:

{
        "source": "ngsw-worker.js",
        "headers": [
          {
            "key": "Cache-Control",
            "value": "no-cache"
          }
        ]
      }
然后在我的index.html中添加此脚本:

<script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('ngsw-worker.js')
      .then(() => console.log('service worker installed'))
      .catch(err => console.error('Error', err));
  }
</script>

if(导航器中的“serviceWorker”){
navigator.serviceWorker.register('ngsw-worker.js'))
.然后(()=>console.log('安装了服务工作者'))
.catch(err=>console.error('error',err));
}

现在它工作了

过了许多天,我终于可以让它工作了

首先,我将以下代码段添加到firebase.json文件的hosting属性中:

{
        "source": "ngsw-worker.js",
        "headers": [
          {
            "key": "Cache-Control",
            "value": "no-cache"
          }
        ]
      }
然后在我的index.html中添加此脚本:

<script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('ngsw-worker.js')
      .then(() => console.log('service worker installed'))
      .catch(err => console.error('Error', err));
  }
</script>

if(导航器中的“serviceWorker”){
navigator.serviceWorker.register('ngsw-worker.js'))
.然后(()=>console.log('安装了服务工作者'))
.catch(err=>console.error('error',err));
}
现在它工作了