早在 2015 年,谷歌就启动了 PWA(又名渐进式网络应用程序,progressive web apps)概念。PWA 专注于在移动网络上做出改变和打造用户体验。
这种类型的 Web 应用程序提供了具有大量网络功能的类似原生应用程序的体验。
处理请求的现代 API 和 Service Worker 是 PWA 的核心。
渐进式 Web 应用程序的一些特点如下:
- 能够以受限方式访问硬件
- 将应用程序数据存储在缓存中
- 能够发送推送通知(仅适用于 Android 用户)
- 能够在低互联网连接和离线情况下正常工作
PWA 具有适用于所有平台的单一代码库。根据用户的设备,此应用可用作响应式网站或移动应用。PWA 不需要下载,因此许多用户甚至根本感知不到他们正在使用 PWA。
PWA 应用需要满足的三大特性:
- Reliability: 不管 internet 连接的质量如何,但该应用程序在打开后仍能正常工作。
- Speed: 用户体验流畅且反应灵敏,没有发现任何滞后现象。
- Engagement: 渐进式网络应用程序的感觉和性能都像原生应用程序。
PWA 是如何工作的? 核心在于三个组成部分:
-
Service Worker 是在后台运行的脚本,管理缓存中的响应。 它们有助于减少数据流量并保存用户在线创建的信息。
-
Application shell:它代表加载 PWA 用户界面的本地资源。 应用程序外壳处理应用程序的交互和导航。由于这个组件,PWA 可以离线工作并加载由 service worker 缓存的动态内容。
-
Web 应用程序清单(manifest.json)是一个 JSON 文件,用于存储有关应用程序的信息。 它的主要目的是告知应用程序在用户屏幕上的显示方式。