有问有答:PWA是什么?
在我们今天和以往的新闻中都有提到一个名词:PWA。那么可能就有很多读者朋友会好奇了,这三个英文字母是什么意思?这篇有问有答就来简单讲解一下PWA是什么,并向各位推荐一些国内可用的PWA。
TL;DR: PWA就是一种网页应用,它可以离线使用,可以变成独立应用安装到系统中。它非常的轻量化,在多平台上面拥有一致的界面。
渐进式网页应用
PWA,全称直译过来就是渐进式网页应用(ProgressiveWebApp)。PWA的概念由Chrome项目组在2015年的时候提出,很明显,它是一种基于网页的应用,但它又与传统的Web App又有一些不同。特性有很多,想要了解具体的直接看Progressive Web App,这里只举我最看重的几点:
·轻量&离线可用
跟普通的网页没啥区别,加载飞快,启动飞快,比如微博的PWA版能比它的App快上一个档次。而且不像Hybrid App那样还是依赖于一个本地的App壳子,需要你去App Store耗费不少流量来安装。PWA在被添加到浏览器之后实际上就成为了一个本地应用,可以直接离线使用(当然它得是那种不依赖在线内容的),不会再额外消耗流量,它的更新也是静默的,会按照开发者写定的周期访问原网页拉取程序更新。
·本地通知支持
在添加在本地之后,PWA就拥有了本地通知能力,因为在Android上是通过GCM实现的,所以国内这点并不好用,微博PWA就干脆没有写通知的功能,而在iOS端苹果也直接限制掉了PWA接收通知的能力,不过在桌面平台上面倒是没有残废。
·全平台统一体验
PWA因为是一种网页应用,所以它可以在所有平台上都有同样的用户体验,虽然目前的PWA界面多是为移动设备而设计,但是至少我在PC上能一样很方便的用到它,而不是通过虚拟机或者其他手段。
·拿不到权限
是的,PWA应用虽然可以留在系统应用列表中,但它仍然还是一个依赖于浏览器的应用,浏览器拿不到的权限它都别想拿到,也就是说使用PWA的时候你的隐私是很有保障的,而且在特定平台(iOS)上面它没有后台。
我记得在早期iPhone刚发布的时候,苹果想推广的就是Web App,让用户可以用一个网页浏览器干所有的活,所以就连安装第三方应用的渠道都没有开放,可惜当时的前端界远远没有今天那么多好用、新颖的技术,那时的移动设备性能也满足不了使用非原生代码的开销,所以最后苹果妥协了,推出了App Store直到今天。而现在PWA这种“渐进式”的网页应用又逐渐流行起来,它没有很久之前那种强推Web App的那种势头,更为务实的风格更能被人们接受。
系统支持已经很完善了
目前几大系统都已经添加了对于PWA的支持。
·Android
作为主导者的Google在前几代的Android中就已经加入了对它的原生支持,在Android上面选择将PWA保留到系统时会自动将该网页应用相关的文件进行编译生成一个APK文件安装进系统,随后就完全不用再打开浏览器去访问它了。
·iOS
苹果对于此标准显得不是太积极,不过他们也在iOS 11.3的时候就给Safari加入了相关的支持,现在iOS的PWA体验完全不差于Android,但是需要开发者针对iOS平台进行一些修改,不然会有“水土不服”的情况发生。
·Windows 10
微软也在之前的更新中给Edge浏览器加入了PWA的支持,不过在Windows 10上面还是用Chrome/Firefox比较方便一些……
那么,怎么用呢?
在桌面端,最简单的就是使用Chrome浏览器。当Chrome检测到当前访问的网页支持PWA的时候,在地址栏的右端就会出现一个安装按钮,点击即可将这个PWA变成一个应用安装到浏览器中。
而在Android上,使用Chrome浏览PWA站点时也会有相应的提示,添加到应用之后就会自动进行编译安装。另外跟据网上看到的情况,MIUI自带的浏览器对这块支持也做的不错,就不知道其他几家做的怎么样了。
iOS上面使用Safari打开网站然后在菜单中选择添加到Home Screen就可以了,之后点开应用图标就会以独立应用形式出现,而不是通过Safari加载网页。
国内可用的PWA
虽然说在国内几大厂想尽一切办法要让用户用上他们的App,而不是通过网页访问自己的内容,但还是有几个比较有良心的团队都试水了PWA,比如:
·微博PWA
我经常看到很多人会抱怨微博的官方客户端中广告内容太多了,但我从来就没有看到过广告,因为我用微博PWA。
不会乱的时间线,没有广告,基本功能全齐,对于普通微博用户来说已经完全够用了。(我还因为PWA的界面调整跟他们的开发团队吵过架)
·飞猪
阿里的前端团队其实与国外前端接轨的很牢,虽然淘宝没有PWA,但是飞猪做了。
·饿了么
·腾讯新闻
·Bilibili
不好用,但是有。
写在最后
PWA是前端界发展到一定高度之后出现的一种新的应用形态,在国外几大网页应用巨头都有在推广它,比如前端标准大佬Mozilla已经把PWA写成一种标准了,而作为主推力量的Google就更不用多说,已经把PWA引进Play Store了。微软则也在加大力度开发PWA,可能未来网页版Office就是一个PWA。
但是反观国内,几大巨头自成一派,每个平台有自己的标准,小程序只能基于自己的App中的浏览器来用,标准之间差距不大但就是不能互通,给开发者带来适配难题。PWA这股清流在国内的应用生态面前完全推广不开,没有一家愿意在这个可以提高用户体验的玩意儿上花功夫。
一声叹息。