最近技术群热烈讨论 PWA,自己虽对其技术原理略知一二,但作为前端,真的有必要掌握 PWA 吗?
先看传统 web 应用。如今 web 应用在移动时代远未达桌面设备上的流行程度。对比原生应用,差距明显。原因主要有几点:移动设备网络受限,加载时间不可忽视;web 应用依赖浏览器入口;体验与原生存在差距。若能解决这些问题,web app 的提升空间可想而知。
那 PWA 究竟是什么呢?
PWA 全称 Progressive Web Apps(渐进式 Web 应用程序),旨在利用现有 web 技术为用户带来更优体验。基本要求有可靠,即即便网络不稳也能瞬间加载呈现;快速响应,具备平滑动画回应操作;粘性强,如原生应用般可添加到桌面。PWA 强调渐进式,开发者可通过 PWA Checklist 查看现有特征。
除基本要求外,还包括渐进式适用所有浏览器、连接无关性可离线访问、类似应用有原生交互和导航、持续更新始终最新、安全由 HTTPS 提供服务、可索引被搜索引擎识别、粘性强可推送通知促用户回流、可安装免去应用商店下载麻烦、可链接方便分享等特性。需强调,PWA 并非全新技术,而是多种 web 技术的集合。
再看 PWA 技术组成。
PWA 由 App Manifest、Service Worker、Notifications API、Push API 等技术构成。其中 Service Worker 是关键,可让 app 满足基本要求,其他技术则锦上添花。
最后看看哪些大公司在用 PWA。
星巴克 2017 年推出 PWA,用户无网络也能浏览菜单定制订单,日活跃用户翻倍,订单多样性增加 23%。Uber 的 PWA 让用户在低端设备和网络不稳时也能叫车,无需下载原生应用。《日经新闻》改用 PWA 后,有机流量增 2.3 倍,订阅量增 58%,日活跃用户增 49%。星巴克的 PWA 提供提前下单和奖励计划,可离线添加商品到购物车。Telegram 推出 PWA 后,用户增长率增 175%,留存率增 50%,用户基数每年增 40%,每次会话数增 50%。
总之,PWA 本质上是 Web App,借助新技术也有了 Native App 的特性。