ionic 3 将应用程序发布为 PWA(渐进式 Web 应用程序)

ionic 3 publish app as PWA (Progressive Web App)

我想将我的应用程序发布为 PWA,所以我所做的是

将此脚本插入到 index.html

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

然后安装

npm run ionic:build --prod 

看起来好像部署了它,但我的问题是:

  1. 我需要将哪些文件上传到主机才能将应用程序发布为 PWA?
  2. 为什么当我在应用程序中更改某些内容时 运行 ionic serve 没有任何更改,它仅在 WWW 文件夹的 index.html 中更改?为什么?(因为现在是 PWA 了??)

  3. 当我打开 www 文件夹时,我 运行 打开 index.html 当我按下打开警报对话框的按钮时,它没有打开那个。为什么?

  4. 当我运行命令?只是发展到最后?

运行

ionic cordova platform add browser

ionic build browser --prod --release

然后转到 [project_folder]/platforms/browser/www 并在您的 http 服务器上复制内容。

不要为 PWA 而使用 Cordova。只需使用 npm run build --prod 并上传 /www 文件夹。

PWA 更多的是概念的集合,所以不仅仅是 "on" 或 "off"。至少你可能想要添加一个清单文件,这样你就可以通过隐藏浏览器框架、设置你的图标、应用程序名称等来让它变得更多 "app like"。取消注释添加服务工作者的行并不能神奇地实现它一个 PWA,如果你没有将任何东西 "useful" 放入 service worker(你可能需要也可能不需要,这取决于你的应用程序的工作方式)。另请注意,您将需要 HTTPS 才能使用服务工作者。

您还需要从 index.html 中手动删除包含 cordova.js 的行(如果您只上传 /www,这将是一个 404 错误)。

我使用此命令构建网络应用程序

ionic cordova build browser

然后将内容从IONIC-PROJECT/platforms/browser/www复制到网络服务器。