2017-05-26 92 views
6

我要发布我的应用程序作为PWA所以我所做的是离子3发布的应用程序作为PWA(逐行Web应用程序)

插入此脚本的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. 为什么当我改变应用程序中的某些东西,并运行离子服务没有改变,它只改变了WWW文件夹的index.html?为什么?(因为现在它是PWA ??)

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

  4. 当我运行命令?只有在发展的最后?

回答

9

运行

ionic cordova platform add browser

ionic build browser --prod --release

然后去[project_folder]/platforms/browser/www,并在你的HTTP服务器复制的内容。

+0

当我这样做?当我完成应用程序的开发?因为我现在运行,当我在我的应用程序中更改某些内容并运行离子服务时,我看不到更改。 –

+0

它应该用'离子模拟浏览器--livereload'完成。但它有一些问题(https://stackoverflow.com/questions/44178594/ionic-run-browser-livereload-not-working)(https://github.com/driftyco/ionic-cli/issues/790 ) –

+0

当我运行离子cordova模拟添加浏览器--livereload它显示我“你添加平台没有Api.js” –

7

不要打扰科尔多瓦PWA。只需使用npm run build --prod并上传/www文件夹即可。

PWA更多的是一个概念集合,所以它不仅仅是“开”或“关”。至少尽管你可能想要添加一个清单文件,所以你可以通过隐藏浏览器框架,设置你的图标,应用程序名等,使其更像“应用程序样式”,设置你的图标,应用程序名称等。取消注释添加服务人员的行并不奇迹般地使它成​​为PWA如果您没有将任何“有用”的东西放入服务人员(根据您的应用程序的工作原理,您可能需要也可能不需要这样做)。另请注意,您需要使用HTTPS才能使用服务工作人员。

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

+0

这种方法会影响开发例如,架构,不包括支持浏览器平台的本地插件。 –

+1

这是正确的。尽管我在浏览器中看到的工作“不错”,但通常会在代码中检查平台并隐藏某些按钮等。其余的本地特定代码已经检查可用性,但是当然取决于您可能需要使用cordova浏览器的应用程序类型,但我认为这是“可以”用作PWA的应用程序的例外情况。 –

+0

请详细说明将平台浏览器添加到Ionic的优点(或缺点)。它做什么,为什么我需要它?根据我的理解,某些Cordova插件(或Ionic Native)也可以定位浏览器,并且如果将它作为PWA运行,它会自动回退到该位置。不支持浏览器的插件将需要为Web提供包装和后备服务 - 是否正确? – Rodney