提起 PWA ,中国读者可能知之甚少;但要说起小程序,在华夏大地人手一部手机的今天,那可谓是无人不知无人不晓了。虽然从严格意义上来说,小程序的前身更接近百度和奇虎 360 在2013 年提出的轻应用1,但 PWA 何尝不是最初的一种借鉴与参考呢?

不过,话说回头,写本文的初衷其实另有其事。

事情是这样的。今年上半年,笔者想选购一台平板。经反复对比,最终锁定了三星 Galaxy Tab S9+。选购期间,虽然好评见了不少,Galaxy AI 也未来可期,但这年头哪有什么产品没有槽点?翻了一圈,发现吐槽主要集中在应用不适配。更有甚者,仅因为此,就直接把平板挂上某鱼。「就这,至于吗?」,笔者一面心里嘀咕,一面又觉得这些评论也许并非空穴来风。躬身尝试之后,「嗯,确实有待提高」。不过话说回头,12.4寸的平板的确不是什么常规尺寸,软件适配确实容易出问题。但作为强迫症和数码玩家,怎么会被适配这点小事劝退?App 端虽然一时半会儿改不过来了,但网页端(响应式页面)总能用吧?想着想着,一个远古的概念蹦入了脑海 —— PWA(Progressive Web App),中文名「渐进式Web应用」。

没错,也许 PWA 就是那个解决方案!

据笔者了解, PWA 在国外发展势头良好(主要也得益于 Chromebook 这类轻便上网本的流行,以及国外用户对这类应用的了解);国内嘛,众所周知,国内市场又完全是另一码事了 —— 况且,PWA 这个外来物种哪里对抗得了铺天盖地的微信小程序呢?

但实际上,经笔者亲测,发现部分国内软件(如 B 站、小红书、下厨房)还是有做 PWA 的,虽然装上的到底是网页快捷方式还是正统的 PWA 还要取决于浏览器。但普遍来说,国内的 PWA 都做得悄无声息,极为低调,不声张、不宣传,主力还是推荐 App,实在没辙了也许有用户(比如笔者)会在尘封的记忆里依稀想起,诶,好像还有 PWA 这么一回事。

既然国内有做,那么笔者就好奇了, PWA 这些年来在中国发展怎么样了?

本文就尝试探索一下。

PWA 简介

PWA,用大白话说,就是一个轻便的网页应用,体积小能量大,支持跨设备离线使用,在有网络情况下可以实时更新升级,支持推送,使用方便,维护成本低,属于「随开随用,随关随停」(这句话原本形容启普发生器,放在 PWA 身上也并无不妥)。

PWA 的历史最早可以追溯到 2015 年,谷歌工程师 Alex Russell 和 Frances Berriman 发现有网站能够独立于浏览器标签页,自成一体。这种独立的存在安全,支持链接,像 App 一样可安装,他们管它叫做 Progressive Web App 。一年以后,Eric Bidelman 在谷歌开发者大会上官宣了这个新标准,自此 PWA 正式宣告载入历史。不久,微软也宣布支持 PWA。苹果的步伐虽然姗姗来迟,但也在 2018 年宣布支持 PWA2

PWA 特征

PWA 最明显的标志就是浏览器中会自动弹出的可安装标识:

桌面端:

Edge 浏览器 PWA 提示可安装标识
Chrome 浏览器 提示可安装标识

在桌面端,按下这个按钮会在你的电脑桌面上生成一个类似 App 的独立网站快捷入口。

移动设备端虽然类似,但是 PWA 的可安装标识不太会自主弹出,需要用户自己将网页添加到主屏时才出现:

移动端 PWA 安装窗口,浏览器为 Chrome

安装过后,下一次在网页中打开同一软件,会不由分说地自动跳转到 PWA 。如果你习惯开关标签页的话,这点 PWA 还挺让人恼火的。

卸载起来,和其他软件一样,笔者在此就不赘述了。

PWA 国内发展

在 PWA 正式立为标准一年后,2017 年 1 月 9 日,张小龙在微信公开课上官宣了微信小程序,而此时的 PWA 尚未占据中国市场。本土化的微信小程序占得了先机,一路高歌猛进,不仅在原先的微信生态如鱼得水,还先后延申扩展到了支付宝、银行、外卖等第三方 App,可以说是无所不在。但弊端也是显然的,小程序的鱼龙混杂直接拖累了 App,让 App 又大又重,运行也不畅快。用户和商家叫苦不迭,却又困于大环境,无可奈何。

相较而言,PWA 在国内则岌岌无名。早期,国内最著名的一次 PWA 尝试 —— 微博 Lite, 也没掀起水花。虽然这个 PWA 如今尚存,但基本属于弃用状态。剩余的厂家似乎也就此沉寂,「抛弃」了 PWA ,至少鲜有对国内官宣。

直到发现适配这个问题,亲自去寻找替代方案时,笔者才发现国内软件也有做 PWA ,但不多,支持的浏览器也需要国际品牌,诸如 Chrome、Firefox、Edge 之类。三星浏览器倒是对 PWA 做了原生支持,这点点名表扬。但整体上,PWA 在国内就是一个小众产品,甚至笔者有理由怀疑这些 PWA 是出于国际化考量而特别制作的。但不论出于何种原因,PWA 在短期,以及未来的很长时间都不会占领国内主流。反观国外,无论是社交媒体 X、YouTube、Discord,还是各大厂家 Github、Starbuck、Spotify,还有 Sass 公司,Notion 等等,PWA 几乎是人手一个。

虽然从技术角度看,小程序和 PWA 本质上都同属于 H5,用的技术也都仅限于 HTML、CSS、JavaScript 三剑客,但微信的集中化管理与平台限制(甚至,往重了一点说,垄断)和 PWA 的独立存在还是有着根本性的区别。

但就开发成本来说,做一个 PWA 远比开发一个针对移动端多尺寸的 App 容易得多。至于实际落地的话,还得看各厂自身的定位与策略。个人还是支持鼓励 App 开发 PWA 的,开发方便,用户也用得愉快~

题外话

本篇关于 PWA 文章是系列中的第一篇,后续笔者还想聊聊 PWA 与网页快捷方式以及 APP 端的异同,以及 有哪些 PWA 站点或「商城」值得推荐,欢迎大家持续关注。