一、什么是PWA
PWA是渐进式 Web 应用,运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。。这些应用无处不在、功能丰富,使其具有与原生应用相同的用户体验优势。
PWA 是可被发现、易安装、可链接、独立于网络、渐进式、可重用、响应性和安全的。
PWA 权益
类似本机的体验
在设备上安装 PWA 时,其功能与其他应用一样。 例如:
PWA 有自己的应用程序图标,可以添加到设备的主屏幕或任务栏。打开关联的文件类型时,可以自动启动 PWA。PWA 可以在用户登录时运行。可以将 PWA 提交到应用程序存储,例如 Microsoft Store。高级功能
PWA 还有权访问高级功能。 例如:
当设备脱机时,PWA 可以继续工作。PWA 支持推送通知。即使应用程序未运行,PWA 也可以执行定期更新。PWA 可以访问硬件功能。与 Web 相关的优势
最后,PWA 可以在 Web 浏览器中运行,就像在网站中一样。 像网站一样运行,PWA 具有优势,例如:
可以通过搜索引擎为 PWA 编制索引。可以从标准 Web 链接共享和启动 PWA。PWA 对用户来说是安全的,因为它们使用安全的 HTTPS 终结点和其他用户安全措施。PWA 适应用户的屏幕大小或方向以及输入法。PWA 可以使用 WebBluetooth、WebUSB、WebPayment、WebAuthn 或 WebAssembly 等高级 Web API。延伸阅读:
二、三大PWA特性
功能性(capable)可靠性(reliable)可安装性(installable)PWA同时具备这三大特性,这也让PWA的应用体验更接近原生。
功能性
Web App当今时代已经具备了丰富的功能,你可以基于 WebRTC 开发一个视频聊天工具,可以使用 Geolocation API 开发一个地图软件,也可以使用 Notification API 来给你的APP推送消息,让用户可以在APP之外接收到通知。你也可以使用 WebGL 和 WebVR 来虚拟化这些场景。通过 Web Assembly,你可以步入其他生态,比如:C和C++等,给Web生态带来更多能力。
直到最近,只有原生App声称具备这些功能。当然,有一些能力还是web当前无法使用的,但新的API会被定义,用来扩展Web能力,比如让Web拥有文件系统的访问权限、媒体控制权限、图标上的badge修改权限、剪切板的全部功能。所有的这些能力都与Web安全、用户为中心的权限模型共同构建,确保访问网站不会给用户造成威胁。
随着现代API的定义,Web的功能性会越来越丰富。
可靠性
一个可靠的PWA应用感受起来很快,而且不依赖网络。
速度对于用户使用体验来说至关重要。实际上,页面加载的时间从1-10秒,用户流失会增长123%。性能也并非在 onload 事件之后就结束了。用户无需时刻担心他们的交互(例如点击了按钮)有没有响应。滚动和动画需要保持流畅。
最后,可靠的App需要对网络无依赖。用户会期望在弱网或者无网络的情况下打开App。他们期望看到上次他们加载的内容,就像是音频或者视频播放到某个特定时间点,即使网络连接困难,还是要保持可靠和可用。如果请求失败了,比起默默地失败或者崩溃,给用户合理的提示才是优异。
用户更喜欢App可以在眨眼睛响应他们的操作,这也是可靠性的一种。
可安装性
安装好的PWA应用可以在一个独立的窗口启动,而不用在浏览器中。它们也可以从主页、docks或者任务栏启动。你也可以搜索到它们,然后从搜索结果中打开。你也可以切换到其他App,然后再切换回来。这感觉就跟原生App几乎一致,成为设备的一部分。