我们生活在一个以应用为中心的世界。即使是那些先推广你文档的产品和体验,也大多停留在应用的边界。设计这样的应用程序并不容易,尤其是当你想支持今天使用的所有不兼容的平台时。并且也有过很多跨越这些平台的尝试,但是一个解决方案似乎一次又一次出现。一个解决方案是利用网络的力量,这是一个在所有平台上都可用的平台。相比最早的Java小程序,progressive Web application(目前命名)已经有了很大的进步,但是对于它的支持者尝试打广告来说,还远远不是一个一站式的解决方案。
Web应用从出现就存在,因为它不仅可以在网页上提供静态文本和多媒体,还可以提供更多的功能。有些人可能会立即想到并屈服于古老的Java小程序,但即使是电子邮件客户端和在线商店也可以作为Web应用程序,尤其是在当今。由于HTML、CSS尤其是Javascript的结合,已经可以提供交互式应用程序体验,这甚至不需要用户安装除了他们可能已经安装的浏览器之外的任何东西。
渐进式Web应用程序或PWA是这一概念的最新发展,区别在于它们如何在各自的操作系统上模仿原生应用程序。常规的Web应用程序通常甚至不会试图隐藏自己是高级网页和美化网页,但一个好的PWA应该让你在Windows、Android甚至Linux上有宾至如归的感觉。这有很多好处,但考虑它的完成可能还为时过早。
渐进优势
无论你使用哪种设备或操作系统,网络应用程序都试图提供单一的服务和体验,无论屏幕大小和网页设计如何,这种服务和体验都会受到限制。事实上,渐进式web应用程序是通过将Web应用程序从Web浏览器中分离出来,同时仍然依赖于相同的基于Web的技术和概念,从而将其提升到一个新的水平。有了正确的工具和框架,这些pwa看起来就像每个支持平台上的本地应用程序。
PWA的主要优势之一(或者至少是理想的选择)是支持应用程序的离线使用。考虑到许多此类应用程序依赖于互联网的特性,这听起来几乎是矛盾的,但是服务工作者和缓存使用户即使在与网格断开连接时也能提供某些功能。
得益于谷歌和微软标签集团的支持,PWA最近也增长了不少。考虑到这两家公司成功和繁荣需要多少PWA,这并不奇怪。他们已经添加了一些功能,使PWA具有与其原生对应物相同的功能,例如最近使用的应用程序图标快捷方式。这将使开发者不必决定选择哪个平台,只需编写涵盖一切的PWA,就可以根据两家公司的意愿在微软商店和谷歌Play商店上发布。
严重限制
PWA使用Web技术和只针对单一平台的几乎令人难以置信的能力,掩盖了平台不是完全跨平台的事实。事实上,您正在将自己与Web浏览器(或浏览器引擎)及其可能的功能和限制联系起来。例如,在其他浏览器框架的平台上(如iOS),可以在Chrome中运行的功能可能不被支持。
那么,事实是这些浏览器和Web技术无法访问原生应用所享有的所有硬件和平台功能。不久前,浏览器还不能使用指纹扫描仪或AR。PWA可以使用的函数列表肯定会增加,但这确实意味着当本机应用程序可以轻松访问它们时,它们必须等待这种情况发生。
离线支持并不像听起来那么可靠。不可否认,对于本质上依赖于互联网连接的本地应用程序来说也是如此。一些pwa可能允许用户继续使用设备上的缓存内容,然后在互联网连接再次可用时将更改同步到服务器。这可能会给开发人员带来更多的工作,他们必须确保应用程序正确缓存和同步数据,而不会损坏数据或导致冲突。