首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ionic PWA与传统的Ionic是分开的吗?

Ionic PWA与传统的Ionic是分开的吗?
EN

Stack Overflow用户
提问于 2018-06-09 22:41:17
回答 1查看 1.3K关注 0票数 4

这似乎是一个简单但又令人困惑的问题。我已经使用离子1很长一段时间了,两年前才接触到离子2+,但已经有一段时间没有使用它了。

最近,我注意到Ionic发布了Ionic PWA,但我不能理解它们是同一个项目的一部分,还是完全分开的。我知道Ionic PWA是一个web应用程序框架,而传统的Ionic仅用于/推荐用于混合应用程序。

所以我的问题是:

  1. 它们是合并在一起还是分开?

  1. 如果它们是分开的,是否可以轻松地从Ionic3迁移到Ionic PWA?(我可能需要更多的浏览器支持)

谢谢!

UPDATE这个问题是在错误的假设下提出的,即Ionic PWA是一个独立但类似于原始Ionic的框架。显然,Ionic PWA只是原始Ionic的一个术语,只是做了一些细微的修改(你必须自己做)才能使它成为PWA。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 02:57:05

PWA与混合应用的不同之处在于,它们在web浏览器的上下文中运行,而不是在操作系统级别的WebView (更多关于AndroidiOS的WebViews )中运行。PWA就像一个网页,它有自己的应用程序图标,并在没有标签和地址栏等的全屏web浏览器中运行。

正因为如此,PWAs不能像混合应用程序一样访问原生功能。例如,如果你想在混合应用程序中访问手机的摄像头,你可以使用类似Cordova插件的东西(在你的离子应用程序中,你可以使用@ionic-native/camera)。要从PWA (本质上是从web浏览器)访问摄像头,Cordova将不起作用--您需要使用web API (see what web APIs can do!)。

由于PWA的架构需要与常规混合应用程序的架构完全不同(应用程序越复杂,分歧就越大),Ionic已经扩展了Ionic PWA,以帮助开发人员更轻松地创建PWA。

要使您的Ionic3应用程序作为PWA运行:如果您使用ionic start从某个Ionic starter应用程序模板创建您的离子应用程序,您可以做两件事来使您的应用程序作为PWA运行。

  1. manifest.json文件添加到/src文件夹,并在index.html<link rel="manifest" href="/manifest.json">中添加指向该文件的链接。通过在您的further reading.
  2. Enable中找到以下代码片段并取消对它的注释,可以获得manifest.jsonindex.html服务工作者支持的An example。但我发现,要真正让Service Workers正常工作,还需要做更多的工作。更多信息请访问MDN.

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

然后运行ionic build并将www文件夹部署到web上,最好通过HTTPS提供服务。如果你从你的移动浏览器打开页面,你应该能够在安卓和iOS (iOS >Version11.3)上“添加到主屏”,并以PWA的形式运行应用程序。

请记住,您拥有的任何Cordova功能都将不起作用。此外,如果你使用的是lazy-loading,这将有助于提高应用程序的性能。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50775419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档